Javascript jQuery活动函数的原型等价物

Javascript jQuery活动函数的原型等价物,javascript,jquery,events,prototypejs,Javascript,Jquery,Events,Prototypejs,我需要将事件侦听器绑定到给定css选择器创建的所有Dynamicly元素 在jQuery中,这将是 $(".foo").live("click", function(e) { // bar }); 在原型中是否有类似的功能?这通常是通过事件#findElement完成的: document.observe('click', function(e, el) { if (el = e.findElement('.foo')) { // there's your `el`

我需要将事件侦听器绑定到给定css选择器创建的所有Dynamicly元素

在jQuery中,这将是

$(".foo").live("click", function(e) {
   // bar
});

原型中是否有类似的功能?

这通常是通过
事件#findElement
完成的:

document.observe('click', function(e, el) {
  if (el = e.findElement('.foo')) {
    // there's your `el`
    // might want to stop event at this point - e.stop()
  }
});

问题的正确答案如下:

Prototype中jQuery
.live()
的等价物是Event.on()方法:


在回调中,this关键字将始终引用原始元素(在本例中为文档)。

最优秀。谢谢!我找到的文档提到只允许标记名,而不允许CSS选择器。然而,查看原型源代码确实可以确认CSS选择器确实是被允许的。这会绑定到文档单击并查找事件,而我认为jQuery会在DOM更改时触发,并将事件绑定到新元素。有可能jQuery在幕后做了类似的事情,但从jQuery 1.4开始,它支持hover之类的事件,所以我想它不再在幕后做类似的事情了,即使它曾经做过。@altCognito,不,这是自从引入了
live
之后,jQuery如何在后台进行实时绑定的。jQuery可以将处理程序绑定到
document
,以处理非本机传播的事件,因为jQuery将手动创建和传播此类事件。@Slomojo这不是语法错误
el
需要分配,而不是与:)抱歉,还原,在这种情况下,我不明白您是如何确定单击的元素就是您要查找的元素。我确实认为链接的示例是错误的。没有
文档。在(…)
上,您必须以相同的方式使用
事件。在(文档…)
上。@clockworkgreek,是的。如果它不存在,我就不会写它。@robert,对不起。我正在检查,但没有列出,当在控制台中检查时,它返回
未定义的
。原来Prototype 1.7的站点正在运行Prototype 1.6!我必须找到它的定义。
var handler = document.on(
    'click',
    'div[id^="post-"] .attached-post-thumbnail',
    function(event, element) {
        console.log(this);
        console.log(element);
    }.bind(this)
);

handler.stop();
handler.start();