如果一个Jquery插件执行了此代码:
dropdown = {
doc: $(document),
element: $('#user_info'),
open: function() {
if ( ! dropdown.element.hasClass('active') ) {
dropdown.element.addClass('active');
dropdown.doc.one( 'click', dropdown.close );
return false;
}
},
close: function() {
dropdown.element.removeClass('active');
}
};
dropdown.element.click( dropdown.open );
如何在我自己的自定义(另一个文件)Jquery插件中禁用/删除/取消绑定单击处理程序?
我正在使用此代码:
dropdown = {
doc: jQuery(document),
element: jQuery('#user_info')
};
dropdown.element.click(function(e) {
dropdown.element.unbind('click', dropdown.open);
});
我得到了我想要的东西,但是javascript控制台显示了这个错误:
TypeError: Object #<Object> has no method 'unbind'...
如果有办法避免此错误,请告诉我。
提前致谢。
答案 0 :(得分:1)
如果有办法避免此错误,请告诉我。
在您的示例中,您似乎在调用unbind
时错过了一个属性名称。你的意思不是吗?
dropdown = {
doc: jQuery(document),
element: jQuery('#user_info')
};
dropdown.element.click(function(e) {
dropdown.element.unbind('click', dropdown.open);
});
注意dropdown.element.unbind()
。变量dropdown
不是示例中的jQuery对象,但dropwdown.element
是。
答案 1 :(得分:0)
好的,我明白了:
dropdown = {
doc: jQuery(document),
element: jQuery('#user_info'),
open: function() {
dropdown.element.addClass('active');
dropdown.doc.one( 'click', dropdown.close );
return true;
},
close: function() {
dropdown.element.removeClass('active');
}
};
dropdown.element.click( dropdown.open );