【发布时间】:2013-10-16 00:49:13
【问题描述】:
我知道您可以使用.on() 将单击事件附加到元素,然后指定哪些子元素接收单击。所以,例如:
$(this.el).on("click", "span", function () {
alert("Bloop!");
});
我需要更具体一点,并针对具有特定属性的选择器,如下所示:
$(this.el).on("click", "span[data-placeholder]", function () {
alert("Bloop!");
});
不过,这似乎不起作用。一旦我添加了属性,它就会停止工作。没有错误,只是似乎没有找到元素。
这是预期的行为吗?有办法解决吗?
清晰度
$(this.el) 只是一个包含许多元素的 div,其中一些是<span data-placeholder="First Name"></span> 标签。可能有几十个 <span> 标签,我不想要那么多事件监听器,所以我想我会使用 .on() 将点击添加到父容器。
【问题讨论】:
-
只要 span 有
data-placeholder属性,这应该可以工作。请注意,.data()不会创建属性。 -
你是通过数据api设置
placeholder吗?如果是这样,它不会创建属性。否则它应该可以工作。 -
你能显示你的实际代码jsfiddle.net吗?
-
什么是
this.el?如果它是一个跨度,它将不起作用,因为您的语法用于委派 -
@Starx 好吧,自从第一个 sn-p 工作以来,我们知道它是 span 的父级。
标签: javascript jquery events jquery-selectors