JQuery:动态删除元素(隔离函数)

时间:2014-01-22 00:01:33

标签: javascript jquery

小提琴 - http://jsbin.com/oloriTo/1/edit

删除元素不是问题,但是当我单击remove false按钮(类是.rf)时,我想不再删除元素,除非单击remove true(class is .rt)按钮。

目前,当我单击remove true元素时,它会按预期执行。 (演示有点糟糕,但它得到了重点)当我点击删除虚假按钮时,我仍然可以点击.container div中的元素并删除它们,这不会发生。

非常感谢任何帮助。

$(document).ready(function() {
  var enabled = false;
  $('.rt').click(function() {
    enabled = true;

    if (enabled === true) {
      $('.container *').on('mousedown touchstart', function() {
        $(this).remove();
        return false;
      });
    } else {
      enabled = false;
    }
  });

  $('.rf').click(function() {
    enabled = false;
  });
});

1 个答案:

答案 0 :(得分:3)

您正在绑定设置启用代码中的删除代码。将其分解并查看由.rf.rt设置的变量。

$(document).ready(function() {
  var enabled = false;
  $('.rt').click(function() {
    enabled = true;
  });

  $('.rf').click(function() {
    enabled = false;
  });
  $('.container').on('mousedown touchstart', '*',function() {
      if (enabled)      
        $(this).remove();
      return false;
   });
});