如何在mootools上实现jQuery实时绑定事件?

如何制作通过ajax加载的元素,在mootools 1.11上采用与同一类相关的事件?

据我所知,在jQquery中,如果你的ajax响应包含像

这样的东西,
如果有一个事件绑定使用live$('.button') ,那些事件将自动绑定。

MooTools 1.11可以实现吗?

也许像这样的东西可能会做你想要的东西? 虽然我不确定它是否适用于1.11。

 Element.implement({ addLiveEvent: function(event, selector, fn){ this.addEvent(event, function(e){ var t = $(e.target); if (!t.match(selector)) return false; fn.apply(t, [e]); }.bindWithEvent(this, selector, fn)); } }); $(document.body).addLiveEvent('click', 'a', function(e){ alert('This is a live event'); }); 

anomareh走在正确的轨道上。

您还需要检查事件目标的祖先元素。

我不确定这是否适用于所有事件,因为它们中的一些不会冒泡(不确定Mootools如何处理这个)。

这是非常酷的想法,jQuery .live()以类似的方式工作,但是冒泡也有问题。 如果某个父级已为此事件附加了stopPropagation() ,则不会发生任何事情。

我认为理想的解决方案是构建自定义事件,这里有关于Nicholas Zakas编写的自定义事件的非常好的post:

http://www.nczonline.net/blog/2010/03/09/custom-events-in-javascript/

但是这个例子还没有实现事件冒泡。 某种鼓泡有其后备因素可以解决这个问题。

你可以这样使用:

 $(document.body).addEvent('click:relay(.filterButton)', function(){ // do something });