我在使用jQuery时遇到了问题。
我正在用javascript动态创建div,这就是使用事件冒泡来将这个div与我的jQuery函数绑定的原因。我正在使用标签主体开始使用我正在创建的productId属性来查找div。问题是当使用productId属性在div中的一个div中单击时不运行。仅在div的不包含其他嵌入div的部分中。 ¿有人可以帮我吗? ;)
这是代码:
<div class="cartProduct" productId="2">
<div class="names">Patatoes</div>
<div class="units">5</div>
</div>
$('body').click(function(event) {
if($(event.target).is('[productId]')) {
...
}
}
答案 0 :(得分:1)
试试这个:
$('body').on('click','[productId]',function(event) {
// do something
});
这使用.on()
method的委托形式。当发生对主体的单击时,jQuery将检查它是否在与第二个参数中的选择器匹配的元素上。 (如果您使用旧版本的jQuery,则需要使用.delegate()
而不是.on()
。如果您使用的是旧版本,请尝试.live()
。)
您现有的代码不起作用,因为event.target
为您提供了启动事件的DOM元素,即您点击的最低级别的子级(您发现它可能是其中一个孩子)你试图测试的div。)