原谅我的无知,因为我对jquery并不熟悉。有没有等效于dojo.connect()?
我找到了这个解决方案:http://think-robot.com/2009/06/hitch-object-oriented-event-handlers-with-jquery/
但是没有断开功能!
你知道jquery中的其他解决方案吗?有jquery.connect但这个插件在我的测试中不起作用。
感谢您的帮助,
斯蒂芬
答案 0 :(得分:3)
最接近的等效jQuery是.bind()
,例如:
$("#element").bind('eventName', function(e) {
//stuff
});
并.unbind()
删除处理程序,如下所示:
$("#element").unbind('eventName');
There are also shortcuts for .bind()
,所以例如click
可以通过两种方式完成:
$("#element").bind('click', function() { alert('clicked!'); });
//or...
$("#element").click(function() { alert('clicked!'); });
对于基于冒泡而不是直接附加的事件处理程序,还有.live()
(.die()
取消绑定)和.delegate()
(.undelegate()
取消绑定)。用于动态创建的元素。
以上示例是匿名函数,但您可以直接提供函数,就像dojo(或任何真正的javascript)一样,如下所示:
$("#element").click(myNamedFunction);
答案 1 :(得分:2)
dojo.connect()的等价物是什么意思?
如果您愿意创建自己的自定义事件处理程序,请查看 bind(), trigger()和 proxy() Events。
proxy()功能将使您重新定义回调函数中 this 指向的内容。
答案 2 :(得分:1)
没有这样但你可以实现以下相同的事情:
$('#someid').click(function() { SomeFunc($(this)) });
这会将somefunc连接到id为“someid”的控件的click事件。单击控件时,将调用该函数,该参数将是一个引用被单击控件的jquery对象。
更新我刚做了一些研究,我认为.delegate()更接近你想要的。
答案 3 :(得分:1)
jQuery connect等同于dojo.connect。