Py学习  »  Jquery

jquery代码每次单击时都运行一个附加类型

Petar Brković • 4 年前 • 356 次点击  

我正在尝试将新的列表项添加到我的树视图中。

基本上这应该按以下方式工作: 单击添加规则btn类的图标,将显示模式(.add new rule)。它有输入字段(调用规则名称)和按钮(创建规则btn)。输入文本并单击按钮,文本将作为另一项添加到树视图的底部。

现在,当我第一次做的时候,它工作得很好。但是,如果我想添加另一个,我单击图标,输入文本,单击按钮。代码运行两次并添加两项。当我再次尝试时,代码运行树时间,以此类推。

有人知道为什么会这样吗?提前谢谢!

    $('.add-rule-btn').click(function(){
      var list;
      list = $(this).parent().next();
      $('#create-rule-btn').click(function(){
        var rule_name = $('#call-rule-name').val();
        list.append('<li class="treeview-animated-element"><span class="call-rule">' + rule_name + '</span></li>');
        $('.treeview-animated').mdbTreeview();
        $(".add-new-rule").modal("hide");
        $('#call-rule-name').val('');
      });
    });
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/46660
 
356 次点击  
文章 [ 1 ]  |  最新文章 4 年前
DarkKnight
Reply   •   1 楼
DarkKnight    4 年前

您可以尝试在外部声明变量列表。因为它是在外部声明的,所以您可以在内部访问和修改它。

.add-rule-btn 

#create-rule-btn

示例代码:

var list;

$('.add-rule-btn').click(function(){

  list = $(this).parent().next();

});

$('#create-rule-btn').click(function(){
  var rule_name = $('#call-rule-name').val();
  list.append('<li class="treeview-animated-element"><span class="call-rule">' + rule_name + '</span></li>');
  $('.treeview-animated').mdbTreeview();
  $(".add-new-rule").modal("hide");
  $('#call-rule-name').val('');
});