请原谅我的无知,因为我对jquery不是很熟悉。是否有类似于dojo.connect()的等效方法?
我找到了这个解决方案:http://think-robot.com/2009/06/hitch-object-oriented-event-handlers-with-jquery/
但是它没有断开连接的功能!
你知道jquery中的其他解决方案吗?有jquery.connect,但是在我的测试中这个插件不起作用。
感谢您的帮助,
Stephane
请原谅我的无知,因为我对jquery不是很熟悉。是否有类似于dojo.connect()的等效方法?
我找到了这个解决方案:http://think-robot.com/2009/06/hitch-object-oriented-event-handlers-with-jquery/
但是它没有断开连接的功能!
你知道jquery中的其他解决方案吗?有jquery.connect,但是在我的测试中这个插件不起作用。
感谢您的帮助,
Stephane
.bind()
,例如:$("#element").bind('eventName', function(e) {
//stuff
});
使用.unbind()
来移除处理程序,如下所示:
$("#element").unbind('eventName');
.bind()也有快捷方式,例如,click
可以有两种方法:
$("#element").bind('click', function() { alert('clicked!'); });
//or...
$("#element").click(function() { alert('clicked!'); });
.live()
(使用.die()
来解除绑定)和.delegate()
(使用.undelegate()
来解除绑定),用于基于冒泡的事件处理程序,而不是直接附加,例如用于动态创建的元素。$("#element").click(myNamedFunction);
dojo.connect()的相当之处是什么意思?
如果您想创建自己的自定义事件处理程序,请查看Events中的bind()、trigger()和proxy()。
proxy()函数可以让您重新定义回调函数中的this指向。
虽然没有这样的功能,但您可以通过以下方式实现相同的效果:
$('#someid').click(function() { SomeFunc($(this)) });
这将把somefunc与id为“someid”的控件的点击事件连接起来。当单击该控件时,将调用该函数,并且参数将是一个jQuery对象,该对象引用被单击的控件。
更新 我刚刚做了更多的研究,我认为.delegate()更接近您想要的。