1

当我运行此代码时,会多次弹出警报以获取alertt()功能。

<script>
      var newdiv = '<div id="text2" onmouseover="alertt()" contenteditable="true">text color to be changed</div>';
    $(document).ready(function(){
         $('.addbutton').click(function () {
             $(this).after($(newdiv).addClass('e'));
         });
        $(".e").draggable({ }) .click(function() { 
              $(this).draggable({disabled: true}); })
                  .blur(function() { $(this).draggable({disabled: false});
                  alert('2');
                  });
    });
    function alertt() { 
        $(".e").draggable({ })
        .click(function() { 
            $(this).draggable({disabled: true});
            alert('3');
        })
        .blur(function() {
            $(this).draggable({disabled: false});
            alert('4');
        });
    }
      </script>
    <body>

    <div id="output"></div>
    <button class="addbutton">Add Text</button>
    <div id="text" class="e" contenteditable="true">text color to be changed</div>
    </body>

以及为什么这个功能不适用于新的,<div>即使我是addClass('e')这个元素。

$(".e").draggable({ }) .click(function() { 
                  $(this).draggable({disabled: true}); })
                      .blur(function() { $(this).draggable({disabled: false});
                      alert('2');
                      });

感谢任何解决此问题的建议或更正。

4

1 回答 1

0

不起作用,因为它们是动态创建的,并且 click 事件未附加到它们。创建 newDiv 后必须附加点击事件手册。或者从所有'.e'中取消绑定点击事件并再次绑定到所有。

于 2013-10-26T08:10:38.713 回答