0

我对 jquery 的 .on 有一个奇怪的问题,我有这段代码可以将新行添加到表中:

$('#converastions_list tr:first').after(append_html);

它添加的其中一件事是一个按钮:

<input id="chat_98" class="answerChat  btn" value="answer" conversation-id="98" rep-email="xxx" type="button">

我正在尝试通过以下方式检测对该按钮的点击:3

$(".answerChat").on("click",function() {
    alert("clicked");  
});

这适用于通过 PHP 加载的按钮,但不适用于我通过 JS 添加的按钮。

我正在使用 jquery 1.7。任何人都知道为什么会这样?

谢谢

4

4 回答 4

2

尝试使用like的event Deligation方法.on()

$('#converastions_list tr:first').on("click", ".answerChat", function() {
    alert("clicked");  
});
于 2013-10-23T07:12:23.660 回答
1

即使您使用.on(),您也没有使用 .on() 的事件委托格式.on()

执行脚本时,该事件应绑定到 dom 中已经存在的元素,并且必须将目标元素的选择器作为第二个参数传递。

$('#converastions_list tr:first').on("click", ".answerChat", function() {
    alert("clicked");  
});
于 2013-10-23T07:11:58.090 回答
1
Use a delegate for element with class .answerChat

$(document).on("click",".answerChat",function() {
    alert("see if clicked");  
});
于 2013-10-23T07:15:58.103 回答
0

试试这个动态创建的元素

$(document).on("click",".answerChat",function() {
    alert("clicked");  
});

或者喜欢click event后写,appending html

$('#converastions_list tr:first').after(append_html);
$(".answerChat").on("click",function() {// add after appending anserChat element
    alert("clicked");  
});
于 2013-10-23T07:13:51.227 回答