我有一个类似于this one的问题,但是有一个重要的区别。接受答案中提供的方法适用于“直接”绑定事件。如果处理程序分配了delegate
方法,则不会生成结果。例如:通过委托()方法测试事件处理程序是否绑定到jQuery中的元素
$("#some-element").delegate(".some-class", "click", function() {
alert("Click!");
});
经过与some-class
类元素被生成并插入到HTML,是有办法以测试是否click
事件处理程序已经被绑定到他们?
编辑:按@尖尖的评论,我会纠正上面的问题,因为处理程序将不会被绑定到.some-class
:
有没有一种方法来检查,如果一个元素为代表,例如,通过一个jQuery对象(在这个例子中它可能是$(".some-class")
),如果点击,会触发处理程序?
“click”事件处理程序不*绑定到这些元素。它被绑定到“#some-element”,并且不会因为DOM改变而改变。事件传播到DOM(“bubble”),绑定到“#some-element”的处理程序首先确保事件目标具有类“some-class”。如果是这样,处理程序被调用。 – Pointy 2012-02-01 14:03:57
我明白了。知道 - 是否有办法模拟我在问题中提到的行为?我现在将其更正为更具体的 – Przemek 2012-02-01 14:13:00
嗯,我不认为有一个现成的jQuery机制来检查这一点。我想你可以写一个,如果你知道jQuery在哪里/如何存储“.delegate()”的事件限定符信息。看起来,简单地保留你自己记录的处理器设置会更容易。 – Pointy 2012-02-01 14:15:56