4

原谅我的无知,因为我对 jquery 不太熟悉。是否有等效的 dojo.connect() ?

我找到了这个解决方案: http: //think-robot.com/2009/06/hitch-object-oriented-event-handlers-with-jquery/

但没有断开功能!

您知道 jquery 中的其他解决方案吗?有 jquery.connect 但这个插件在我的测试中不起作用。

谢谢你的帮助,
斯蒂芬

4

4 回答 4

3

最接近的等效 jQuery 是.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()to unbind) 和.delegate()( .undelegate()to unbind) 用于基于冒泡而不是直接附加的事件处理程序,例如动态创建的元素。

上面的例子是匿名函数,但是你可以直接提供一个函数,就像 dojo(或者任何 javascript)一样,像这样:

$("#element").click(myNamedFunction);
于 2010-05-23T10:36:03.590 回答
2

等效于 dojo.connect() 是什么意思?

如果您愿意创建自己的自定义事件处理程序,请查看Events中的bind()trigger()proxy()

proxy()函数将允许您在回调函数中重新定义this指向的内容。

于 2010-05-23T10:45:18.763 回答
1

没有这样的,但你可以实现如下相同的事情:

$('#someid').click(function() { SomeFunc($(this)) });

这会将 somefunc 连接到 ID 为“someid”的控件的单击事件。单击控件时,将调用该函数,并且参数将是一个 jquery 对象,该对象引用被单击的控件。

更新我刚刚做了更多的研究,我认为.delegate()更接近你想要的。

于 2010-05-23T10:32:15.837 回答
1

jQuery connect相当于 dojo.connect。

于 2011-07-13T04:02:48.193 回答