我有一个脚本,当点击它时,它运行一个带有ajax请求的函数。
jQuery('.go').on('click', function(){
id = "";
id = $(this).parent().parent().find("input").val();
request_event("go",id);
});
jQuery('.noGo').on('click', function(){
id = "";
id = $(this).parent().parent().find("input").val();
request_event("noGo",id);
});
运行ajax后,div中的值(包含span值的div)会发生变化。
switch(operation){
case "go":
jQuery('.eventBox input[value="'+id+'"]').parent().find("#confirmBox").html("<span class='noGo cursorIcon'>Não Confirmar</span>");
break;
case "noGo":
jQuery('.eventBox input[value="'+id+'"]').parent().find("#confirmBox").html("<span class='go cursorIcon'>Confirmar</span>");
break;
}
问题在于,在所有新的“链接”中,不会触发点击事件。
任何人都可以惹我生气?
答案 0 :(得分:3)
对最近的静态元素使用.on()
或对新创建的元素使用这样的文档
jQuery(document).on('click','.go', function(){
答案 1 :(得分:1)
对于所有新链接,您需要这样做:
jQuery(document).one('click', '.go', function () {
id = "";
id = $(this).parent().parent().find("input").val();
request_event("go", id);
});
答案 2 :(得分:0)
似乎想要获得动态元素的“on”事件寄存器,实现需要有点像这样
$(document).on("click",".go",function(){
alert("hello");
$('#divTest').append("<span class='go'>dynamic span</span>");
});
在此fiddle
中查看此内容