元素不响应JQuery单击


Element not reacting to JQuery Click

从数据库加载元素后,我在PHP中使用Jquery添加了元素。每个按钮有两个类,一个控制GUI,另一个控制Click for particular按钮。代码如下

所示
    echo "<script type='text/javascript'>$('.main').append('<button class=b_ui b$index>Change</button>'); </script>";

现在,如果我从浏览器的Inspect Element角度检查类,它显示了2个类。但是当我点击它并使用以下代码获取元素的类

$('.b_ui').click(function()
{
    cls = $(this).attr('class');
    alert('no. '+cls);
}

它只显示第一类(GUI),而不是我想用来处理点击的其他。有什么帮助吗?

在class属性周围加上引号。<button class='"b_ui b$index'">Change</button>

你应该使用"on"方法:

$(document).on('click', '.b_ui', function() { 
   cls = $(this).attr('class');
   alert('no. '+cls);
});

当动态添加元素到DOM时,它们不能像在页面加载时那样被jQuery访问。比如你有这样一个div:

<div id="div"></div>

然后用jQuery添加一些内容现在看起来是这样的:

<div id="div"><span id="span"></span></div>

你不能使用jQuery直接引用span与$('span[id=span]'),你必须瞄准一个包含元素,然后过滤包含元素你想:

$('#id').on('click','span',function(){});