Javascript 在jQuery中创建新元素的问题
我对jQuery还相当陌生,正在尝试理解我刚刚编写的一些代码 我有一个简单的HTMLJavascript 在jQuery中创建新元素的问题,javascript,jquery,html,addclass,appendto,Javascript,Jquery,Html,Addclass,Appendto,我对jQuery还相当陌生,正在尝试理解我刚刚编写的一些代码 我有一个简单的HTML <body> <div id="theDiv"> <button>This is the div</button> </div> </body> 我希望你们中的一些jQuery大师能够向我解释到底发生了什么,因为我自己还不太了解 这是我一直在用的小提琴 干杯。带有class.mySelects的在单击按钮之
<body>
<div id="theDiv">
<button>This is the div</button>
</div>
</body>
我希望你们中的一些jQuery大师能够向我解释到底发生了什么,因为我自己还不太了解
这是我一直在用的小提琴
干杯。带有class
.mySelects的
在单击按钮之前不存在。正如一些人在设置onclick事件时所说,您想要事件的元素还不存在。您需要像这样使用jQuery委托
$(“body”)。在(“click”、“.mySelects”,function(){…})上代码>以下是添加选择选项的两个备选方案。第一个是代表,就像乔治建议的:
$("body").delegate(".mySelects", "click",function(){
console.log("Just added the class");
$('<option value="Text">Text</option>').appendTo(".mySelects")
});
$(document).on("click", ".mySelects",function(){
console.log("Just added the class");
$('<option value="Text">Text</option>').appendTo(".mySelects")
});
$(“body”).delegate(.mySelects”,“click”,function(){
log(“刚刚添加了类”);
$('Text').appendTo(“.mySelects”)
});
$(document).on(“click”,“.mySelects”,function()){
log(“刚刚添加了类”);
$('Text').appendTo(“.mySelects”)
});
由于DOM load上无法使用.mySelects
,您需要委派单击事件。感谢您的回答,我一直在努力完全掌握委派的概念。仅供参考,如果有人在这里偶然发现,jQuery API文档建议在较新版本上使用.on
,因此如果您使用的是最新的jQuery库,第二个示例将更合适。
$(document).ready(function(){
$("button").on("click",function(){
$("<div></div>").attr("id","myDiv").appendTo("#theDiv");
$("<select></select>").addClass("mySelects").appendTo("#myDiv");
$(".mySelects").on("click",function(){
console.log("Just added the class");
$('<option value="Text">Text</option>').appendTo(".mySelects")
});
});
});
$("body").delegate(".mySelects", "click",function(){
console.log("Just added the class");
$('<option value="Text">Text</option>').appendTo(".mySelects")
});
$(document).on("click", ".mySelects",function(){
console.log("Just added the class");
$('<option value="Text">Text</option>').appendTo(".mySelects")
});