什么是等效于jQuery .live()的Dojo?
什么是等效于jQuery .live()的Dojo?
http://api.jquery.com/live/
我发现的唯一解决方案是dojo.disconnect事件处理程序,并在向页面添加动态标记后重新连接它们。
用法和演示
dojo.query("body").delegate(selector, eventName, fn);
代码 – 重写dojo的原始mixin-like delegate
函数
dojo.provide("dojox.NodeList.delegate"); dojo.require("dojo.NodeList-traverse"); dojo.extend(dojo.NodeList, { delegate: function ( selector,eventName, fn) { return this.connect(eventName, function (evt) { var closest = dojo.query(evt.target).closest(selector, this); if (closest.length) { fn.call(closest[0], evt); } }); //dojo.NodeList } });
看票#11459
你可以更普遍地使用它来像jQuery delegate
,而不仅仅是live
,因为live
基本上是文档级别的delegate
。
我认为dojo.behavior执行类似的function
只是用
on(document, "xxx", function(){})
例如。 在jquery中: $(".className").live(function(){})
在dojo中,它是:( on(document, ".className", function(){})
实际上这就是jquery.live所做的,它将事件绑定到文档以实现该function。