Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/461.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/81.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击事件仅工作一次_Javascript_Jquery - Fatal编程技术网

Javascript 单击事件仅工作一次

Javascript 单击事件仅工作一次,javascript,jquery,Javascript,Jquery,当我点击plusicondiv时,我想添加图像和文本框,当我点击mynasicondiv时,删除图像和文本框。我的问题是下次单击plusiondiv时,不会添加图像和文本框。它只会刷新页面并单击plusicondiv $(函数(){ $('.plusicondiv')。在('click',函数(){ var textBox=''; $('.box').append(textBox); var img=“”; $('.box').append(img); $(函数(){ $(.mynasicon

当我点击plusicondiv时,我想添加图像和文本框,当我点击mynasicondiv时,删除图像和文本框。我的问题是下次单击plusiondiv时,不会添加图像和文本框。它只会刷新页面并单击plusicondiv

$(函数(){
$('.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('');