2013-10-26 39 views
1

當我運行這段代碼時,彈出多次提醒alertt()函數。jquery功能在addClass後效果不佳

<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'); 
         }); 

感謝任何建議或更正解決此問題。

回答

0

不起作用,因爲它們是動態創建的,並且click事件未附加到它們。創建newDiv後,您必須附加單擊事件手冊。或從所有'.e'中解除綁定點擊事件,然後再次綁定到所有。