Javascript 如何停止在jQuery中附加元素

Javascript 如何停止在jQuery中附加元素,javascript,jquery,html,Javascript,Jquery,Html,我有一段页面看起来像这样: 所以,定期下拉。选择此选项时: 这两个按钮消失,显示输入元素。像这样: 当我选择了与创建新活动不同的内容时,这两个按钮再次显示,input消失。但如果尝试几次,它会继续添加这个输入字段,即使我不想要它们。这就是我的问题所在 我将发布一篇文章,试图与之一起阻止附加元素: var propagation = false; $(document).ready(function() { $('#campaign').change(function

我有一段页面看起来像这样:

所以,定期下拉。选择此选项时:

这两个
按钮
消失,显示
输入
元素。像这样:

当我选择了与创建新活动不同的内容时,这两个按钮再次显示,
input
消失。但如果尝试几次,它会继续添加这个输入字段,即使我不想要它们。这就是我的问题所在

我将发布一篇文章,试图与之一起阻止附加元素:

var propagation = false;

    $(document).ready(function() {

      $('#campaign').change(function() {
        var campaign = $('#campaign option:selected').val();
        console.log(campaign);
        //          if(propagation==true){
        //              propagation=false;
        //          }
        if (propagation == false) {
          if (campaign == 'createCampaign') {
            console.log('radi');
            $('#editCampaign').hide();
            $('#deleteCampaign').hide();
            $('#appGroup').hide();
            $('#h4').text('Campaign name:');
            $('#edit-delete-camp').append('<input type="text" class="form-control" id="nameCampaign">');
            $('#edit-delete-camp').append('<button class="btn btn-default" id="butonSukcesJsonValu" type="button">Save</button>');

          }
          propagation = true;
        } else {
          if (campaign != 'createCampaign') {
            $('#editCampaign').show();
            $('#deleteCampaign').show();
            $('#appGroup').show();
            $('#h4').text('Choose app group:');
            $('#nameCampaign').hide();
            $('#butonSukcesJsonValu').hide();
          }
          propagation = false;
        }
      });
    });
var传播=false;
$(文档).ready(函数(){
$(“#活动”)。更改(函数(){
var活动=$(“#活动选项:选定”).val();
控制台日志(活动);
//如果(传播==真){
//传播=假;
//          }
如果(传播==false){
如果(活动=='createCampaign'){
console.log('radi');
$('#editCampaign').hide();
$(“#删除活动”).hide();
$('#appGroup').hide();
$('#h4')。文本('活动名称:');
$(“#编辑-删除营地”)。追加(“”);
$(“#编辑删除营地”).append('Save');
}
传播=真;
}否则{
如果(活动!=“createCampaign”){
$('#editCampaign').show();
$(“#删除活动”).show();
$('#appGroup').show();
$(“#h4”).text('选择应用程序组:');
$(“#nameCampaign”).hide();
$('butonSukcesJsonValu').hide();
}
传播=假;
}
});
});

您将传播设置在if之外,因此它第二次将不起作用。我更新了你的小提琴,看看吧:

我还编辑了你的HTML,并添加了一行css,希望对你有所帮助

var传播=false;
$(文档).ready(函数(){
$(“#活动”)。更改(函数(){
var活动=$(“#活动选项:选定”).val();
控制台日志(活动);
//如果(传播==真){
//传播=假;
//			}
如果(传播==false){
如果(活动=='createCampaign'){
console.log('radi');
$('#editCampaign').hide();
$(“#删除活动”).hide();
$('#appGroup').hide();
$('#h4')。文本('活动名称:');
$('.newCampain').show();
//$('#edit delete camp')。append('')//每次都会添加一个新元素
//$('#edit delete camp')。append('Save');//每次都会添加一个新元素
传播=真;
}
}否则{
如果(活动!=“createCampaign”){
$('#editCampaign').show();
$(“#删除活动”).show();
$('#appGroup').show();
$(“#h4”).text('选择应用程序组:');
$(“#nameCampaign”).hide();
$('butonSukcesJsonValu').hide();
传播=假;
}
}
});
});
.newCampain{
显示:无;
}

选择活动
创建新活动
运动A
运动B。。。
编辑活动名称
删除活动
拯救

这正是我需要的!干得好:)