更改JQuery中新附加的元素
因此,当我勾选原始框时,它们消失了。但是,当您切换列表并显示新复选框时,当您选中它时,它不会消失。为什么? 编辑:我对代码进行了更改以反映答案。我现在想知道为什么在按enter键时默认删除文本框,而新出现的文本框却没有更改JQuery中新附加的元素,jquery,Jquery,因此,当我勾选原始框时,它们消失了。但是,当您切换列表并显示新复选框时,当您选中它时,它不会消失。为什么? 编辑:我对代码进行了更改以反映答案。我现在想知道为什么在按enter键时默认删除文本框,而新出现的文本框却没有 $(文档).ready(函数(){ $(document).on(“click”,“.items”,function()){ $(this.remove(); }); $(“li”)。单击(函数(){ $(“li”).removeAttr(“类”); $(this.attr(“
$(文档).ready(函数(){
$(document).on(“click”,“.items”,function()){
$(this.remove();
});
$(“li”)。单击(函数(){
$(“li”).removeAttr(“类”);
$(this.attr(“class”,“selectedlist”);
$(“.items”).remove();
$(“#itemsbar”).append('\
新框~');
});
$(“#itemsbar>p”)。单击(函数(){
$(this.remove();
$(“#itemsbar”)。附加(“”);
});
$(document).on(“keyup”、'.addnew',函数(e){
如果(e.which==13){
$(this.remove();
e、 预防默认值();
}
});
});代码>
待办事项清单
测试列表
测试列表2
复选框1
复选框2
单击以添加
更改
$(".items").click(function () {
到
您正在将文档绑定到文档中的项目,因此当您打开新项目时,它不会将此侦听器绑定到该项目。绑定问题。重新绑定事件或将事件委派给父级。一切都会好起来的。我会把它绑定到文档本身,对吗?那它为什么不起作用呢?在我的训练中,我从未见过这样的事情。所以我不确定我是否理解这个概念。现在我觉得我缺少了JQuery的一个基本概念。@Paul您在页面上添加的li单击项不在文档的开头。当你说$(“.items”).click(函数(){inside document ready-你说的任何东西都会与这个click侦听器绑定。你要绑定的项目当前不在那里,所以它们不会绑定,所以当你说$(document)时。在(“click”,“.items”,函数()上{,您可以在文档内部扫描任何具有类items的内容以触发事件。@Paul我们绑定到文档而不是.items本身,因此无论项目是来还是去,它都会检查文档内部,并且在您的情况下,您绑定到存在的元素-因此,如果它们不在页面上,则d、 或者离开页面,他们会失去绑定。我尝试了同样的策略,在按下enter键时使一个新的文本框消失。不再工作,所以可能这太复杂了?我在我原来的帖子中更新了代码,谢谢你的帮助!
$(document).on("click",".items",function() {