jQuery - 似乎无法将.live()绑定到标签元素.为什么?

dav*_*ave 1 javascript jquery label bind live

这是我的代码:

HTML:

<ul id="more-items">
   <li><label class="button">hi</label></li>
   <li><label class="button">hi</label></li>
   <li><label class="button">hi</label></li>
</ul>
Run Code Online (Sandbox Code Playgroud)

使用Javascript:

$('ul#more-items label.button').live('click', function()
{
   alert(1);
});
Run Code Online (Sandbox Code Playgroud)

单击标签不会导致alert()触发..live()绑定似乎对标签元素没有影响......

如果我将其更改为使用.click()甚至.bind(),它可以完美地运行.是否有任何原因.live()不起作用?有没有办法来解决这个问题?

我使用.live()的原因是因为ul#more-items将多次读取到页面并且我不希望每次重新绑定点击时都必须触发一个函数.

use*_*716 6

jQuery的live()方法依赖于事件冒泡(一直到根节点)才能工作.

如果有任何代码可以阻止事件在label其祖先或任何祖先上冒泡,live()则无法正常工作.

label该祖先或其中一个祖先有下列任何一个处理程序的机会吗?

return false;
Run Code Online (Sandbox Code Playgroud)

要么

event.stopPropagation();
Run Code Online (Sandbox Code Playgroud)

如果是这样,live()将失败.


相关的jQuery文档: