我对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。任何人都知道为什么会这样?
由于
答案 0 :(得分:2)
尝试使用event Deligation
方法{/ 1}}
.on()
答案 1 :(得分:1)
即使您使用.on(),也未使用.on()
的事件委派格式。
当执行脚本并且目标元素的选择器必须作为第二个参数传递时,事件应绑定到dom中已存在的元素。
$('#converastions_list tr:first').on("click", ".answerChat", function() {
alert("clicked");
});
答案 2 :(得分:1)
Use a delegate for element with class .answerChat
$(document).on("click",".answerChat",function() {
alert("see if clicked");
});
答案 3 :(得分: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");
});