在addClass之后,Jquery函数运行不正常

时间:2013-10-26 08:05:35

标签: jquery-ui-draggable

当我运行此代码时,警告会多次弹出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');
                      });

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

1 个答案:

答案 0 :(得分:0)

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