仅为第一个按钮添加处理程序
Adding a handler for the first button only
页面上有一个div,它包含一些具有相同类但没有id的按钮。我希望能够为它添加一个处理程序,但只针对第一个按钮:
$(document).on("click", "#my_div .some_class", function() {
alert("yes");
});
代码将一个处理程序添加到my_div中带有特定类的所有按钮。如何对第一个按钮做同样的事情?
:我在页面上动态地删除和添加按钮。在删除之前,这段代码工作得很好,这意味着它只适用于第一个按钮,而不是任何其他按钮,这就是我想要的:
$(document).on("click", "#my_div .some_class:eq(0)", function() {
alert("yes");
});
然而,在之后删除和添加第一个按钮再次动态它不再工作了,但下面这个可以,虽然它适用于所有按钮,这不是我想要的:
$(document).on("click", "#my_div .some_class", function() {
alert("yes");
});
使用:first-child
选择器
$(document).on("click", "#my_div .some_class:first-child", function() {
alert("yes");
});
working DEMO
编辑:更新FIDDLE有动态加载元素的用例
jQuery有一个First-Child选择器,它的工作原理与CSS3中的对应选择器非常相似。这将选择位于#my_div
中的" .some_class
"的第一个实例。
$(document).on("click", "#my_div .some_class:first-child", function() {
alert("yes");
});
试试这个eq
选择器,它接受索引:
$(document).on("click", "#my_div .some_class:eq(0)", function() {
alert("yes");
});
还有:
gt
:选择大于给定索引的倍数。
lt
:选择小于给定索引的多个
:
$(document).delegate("click", "#my_div .some_class:eq(0)", function() {
alert("yes");
});
检查显示:
if($("selector").is(":hidden")) {
//
}
还有:
:visible,检查元素是否显示
附加到第一个可见元素
$(document).delegate("click", "#my_div .some_class:visible:eq(0)", function() {
alert('yes');
}
为您希望拥有处理程序的特定按钮创建唯一ID,并使用该ID来区分按钮。
如果你使用一个类来放置处理程序,那么该类的所有元素都将具有onclick处理程序(只要它适合你的查询"#my_div .some_class")
你试过第一个孩子了吗?
,
$(document).on("click", "#my_div .some_class:first-child", function() {
alert("yes");
});
但首先,请检查您的控制台是否可以使用此选择器找到第一个子节点?
$("#my_div .some_class:first-child")
相关文章:
- keyup事件处理程序更改焦点不适用于快速键入
- 提示使用服务器端事件处理程序激活JavaScript
- 将事件处理程序绑定到任何可能的事件
- 正在将事件处理程序添加到不存在的类
- 在AJAX回调和呈现PIXIJS之间处理程序流时遇到了问题
- Adobe Edge:动画完成时添加onComplete处理程序
- 是否可以从输入处理程序中确定输入的类型
- 在循环中附加事件处理程序时出现浏览器性能问题
- 在同一个javascript事件处理程序中调用不同的函数
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 检查事件处理程序参数
- 实现延迟的jquery更改事件处理程序
- 平均值.on(事件[,选择器][,数据],处理程序)
- getSript在同一对象上多次添加处理程序
- 如何使用Node.js在JavaScript模块文件之间使用事件处理程序
- 如何让React JS点击处理程序在执行时更新DOM
- 如何使jQuery的“bind”或“on”事件处理程序幂等
- Backbone listenTo不将jquery函数作为处理程序进行激发
- 带有参数的Javascript事件处理程序
- Jquery事件处理程序仅适用于匿名函数