如果更多元素具有此类,则.click函数不适用于类

时间:2013-02-07 11:58:47

标签: javascript jquery css

这很好用:

$('.classname').click(function() {
  alert('');
});
<div class="classname">Click me!</div>

但这不是:

$('.classname').click(function() {
  alert('');
});
<div class="classname">Click me!</div>
<div class="classname">Click me!</div>

我该如何解决这个问题?谢谢你的帮助! (标签中的脚本,以及.click是文档就绪功能)

4 个答案:

答案 0 :(得分:2)

试试这个:

$('PARENTNODE').on('click', '.classname', function() {
  alert('');
});
<div class="classname">Click me!</div>
<div class="classname">Click me!</div>

附加点击处理程序后添加元素。通过使用.on(),您也可以为将来的元素启用它。

将PARENTNODE替换为您要委托的父级(例如,正文)

答案 1 :(得分:0)

试试这个

$(document).ready(function(){
    $(document).on('click', '.classname', function() {
      alert('');
    });
});

参考http://api.jquery.com/on/

答案 2 :(得分:0)

您尝试定位在调用.click的时刻不存在的元素。

你可以将整个jquery代码包装在$(function(){your code here})之间;或者在两个&lt; div&gt;之后移动javascript。

答案 3 :(得分:0)

我假设所有div都是动态添加的第一个div。

使用事件委派方法:

$(function(){
    $(document).on('click', '.classname', function() {
        alert('');
    });
}),