jquery有dojo.connect()的等价物吗?

esbemjvw  于 2023-05-27  发布在  Dojo
关注(0)|答案(4)|浏览(258)

请原谅我的无知,因为我不熟悉jquery。有与dojo.connect()等价的方法吗?
我找到了这个解决方案:http://think-robot.com/2009/06/hitch-object-oriented-event-handlers-with-jquery/
但没有断开功能!
你知道jquery中的其他解决方案吗?有jquery.connect但这个插件在我的测试不工作。
谢谢你的帮助
斯蒂芬

1sbrub3j

1sbrub3j1#

最接近的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);
nvbavucw

nvbavucw2#

您所说的dojo.connect()的等价物是什么意思?
如果您愿意创建自己的自定义事件处理程序,请查看Events中的 bind()trigger()proxy()

  • proxy()* 函数允许你重新定义回调函数中 this 指向的对象。
tag5nh1u

tag5nh1u3#

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

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

这将把somefunc,连接到ID为“someid”的控件的click事件。当控件被点击时,函数将被调用,参数将是一个引用被点击的控件的jquery对象。

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

lokaqttq

lokaqttq4#

jQuery connect相当于dojo.connect。

相关问题