大佬教程收集整理的这篇文章主要介绍了事件 – jQuery .on()事件不适用于动态添加的元素,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
问题是当我在动态添加的div中按下该按钮时,没有任何反应。事件根本不触发。
我试图在HTML中添加该div,然后重试,该事件工作。所以我想这是因为div被动态添加。
添加的div有@L_60_0@mainTaskWrapper类,该按钮有一个类checkButton。
事件在下面的script.js文件的末尾使用.on()附加。
这是我的代码:
Helper_main_task.js :(这是添加div的对象,你不必阅读它,因为我认为这是关于该动态添加的div,但是如果你需要的话)
var MainUtil = { tasksArr : [],catArr : ["all"],add : function(){ var MTLabel = $("#mainTaskInput").val(),//task label MTCategory = $("#mainCaTinput").val(),//task category MTPriority = $("#prioritySlider").slider("value"),//task priority MTContents = $('<div class="wholeTask">\ <div class="mainTaskWrapper clearfix">\ <div class="mainMarker"></div>\ <label class="mainTaskLabel"></label>\ <div class="holder"></div>\ <div class="subtrigger"></div>\ <div class="checkButton"></div>\ <div class="opttrigger"></div>\ <div class="addSubButton"></div>\ <div class="mainOptions">\ <ul>\ <li id="mainInfo">Details</li>\ <li id="mainEdit">Edit</li>\ <li id="maindelete">delete</li>\ </ul>\ </div>\ </div>\ </div>'); this.tasksArr.push(MTLabel); //setTing label MTContents.find(".mainTaskLabel").text(MTLabel); //setTing category if(MTCategory == ""){ MTCategory = "uncategorized"; } MTContents.attr('data-cat',MTCategory); if(this.catArr.indexOf(MTCategory) == -1){ this.catArr.push(MTCategory); $("#categories ul").append("<li>" + MTCategory +"</li>"); } $("#mainCaTinput").autocomplete("option","source",this.catArr); //setTing priority marker color if(MTPriority == 2){ MTContents.find(".mainMarker").css("BACkground-color","red"); } else if(MTPriority == 1){ MTContents.find(".mainMarker").css("BACkground-color","black"); } else if(MTPriority == 0){ MTContents.find(".mainMarker").css("BACkground-color","blue"); } MTContents.hide(); $("#tasksWrapper").prepend(MTContents); MTContents.slideDown(100); $("#tasksWrapper").sortable({ axis: "y",scroll: "true",scrollSpeed : 10,scrollSensitivity: 10,handle: $(".holder") }); } };
$(function(){ $("#addMain,#mainCaTinput").on('click keypress',function(evt){ if(evt.type == "click" || evt.type =="keypress"){ if((evt.type =="click" && evt.target.id == "addMain") || (evt.which == 13 && evt.target.id=="mainCaTinput")){ MainUtil.add(); } } }); //Here's the event i'm talking about : $("div.mainTaskWrapper").on('click','.checkButton',function(){ alert("test text"); }); });
以上是大佬教程为你收集整理的事件 – jQuery .on()事件不适用于动态添加的元素全部内容,希望文章能够帮你解决事件 – jQuery .on()事件不适用于动态添加的元素所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。