Javascript 单击事件仅工作一次
当我点击plusicondiv时,我想添加图像和文本框,当我点击mynasicondiv时,删除图像和文本框。我的问题是下次单击plusiondiv时,不会添加图像和文本框。它只会刷新页面并单击plusicondivJavascript 单击事件仅工作一次,javascript,jquery,Javascript,Jquery,当我点击plusicondiv时,我想添加图像和文本框,当我点击mynasicondiv时,删除图像和文本框。我的问题是下次单击plusiondiv时,不会添加图像和文本框。它只会刷新页面并单击plusicondiv $(函数(){ $('.plusicondiv')。在('click',函数(){ var textBox=''; $('.box').append(textBox); var img=“”; $('.box').append(img); $(函数(){ $(.mynasicon
$(函数(){
$('.plusicondiv')。在('click',函数(){
var textBox='';
$('.box').append(textBox);
var img=“”;
$('.box').append(img);
$(函数(){
$(.mynasicondiv”)。在(“单击”,函数(){
$(this.parent(“.box”).remove();
返回
})
});
});
});代码>
使用$(文档)。在
上单击以获取动态生成的dom元素事件
$(document).on('click','.mynasicondiv',function () {
$(this).parent(".box").empty();
return
})
如果删除()box div
,则不能延迟追加img。最好使用empty()
所有代码
$(函数(){
$('.plusicondiv')。在('click',函数(){
var textBox='';
$('.box').append(textBox);
var img=“”;
$('.box').append(img);
$(函数(){
$(文档).on(“单击“,.mynasicondiv”,函数(){
$(this.parent(“.box”).empty();
返回
})
});
});
});
您使用的是一个在另一个内部的$(function(){…})
而这是不需要的
这里的$(“.mynasicondiv”)
是一个动态创建的元素。因此,委派附加到它的事件
$(function() {
$('.plusicondiv').on('click', function() {
var textBox = '<input type="text" class="textbox"/>';
$('.box').append(textBox);
var img = '<img class="mynasicondiv" src="vectorimages/mynas.svg"></img>';
$('.box').append(img);
});
$("body").on("click", '.mynasicondiv', function() {
$(this).parent(".box").remove();
return
})
});
$(函数(){
$('.plusicondiv')。在('click',function()上{
var textBox='';
$('.box').append(textBox);
var img=“”;
$('.box').append(img);
});
$(“body”)。在(”单击“,”.mynasicondiv',函数()上{
$(this.parent(“.box”).remove();
返回
})
});
注意:您正在删除.box
,因此下次您将无法附加文本框
,因为.box
不会出现在DOM中您正在完全删除.box
div,这就是您无法添加其他输入和图像的原因。而是这样做:
$('.plusicondiv')。在('click',function()上{
var textBox='';
$('.box').append(textBox);
var img=“”;
$('.box').append(img);
});
$(“正文”)。在(“单击”上,“.mynasicondiv”,函数(e){
$(this.parent(“.box”).html(“”);
});代码>
点击我
我想您需要一种功能,即单击添加更多新字段。我建议使用下面的jQuery插件。
[
在代码中,可以替换而不是
$(this).parent(".box").remove();
下面的代码
$(this).(".box").html('');
因为remove()函数是remove all the box class html控制台中有任何错误吗?看起来您正在删除plus要添加内容的box。页面中有html吗?没有语法错误。您可以发布html,至少是相关部分吗?console.log($('.box').length)
在第一个onlick函数中,如果.box被删除,则无法附加到下一个.boxtime@aswathy快乐编码!
$(this).(".box").html('');