2011-06-06 110 views
2

我想選擇插入的元素與after(),但我無法選擇它。選擇插入元素的問題

在Firebug控制檯中,我可以使用$('.new-tree-node-close')獲取<span.new-tree-node-close>,但在我的頁面中我無法獲取它。

<ul> 
    <li class="tree-l2"><a class="reference internal" href="#">One</a></li> 
    <li class="tree-l2"><a class="reference internal" href="#">Two</a></li> 
    <li class="tree-l2"><a class="reference internal" href="#">There</a></li> 
    <li class="tree-l2-new"> 
     <div class="new-tree-node-l2">New</div> 
    </li> 
</ul> 
$(document).ready(function() { 
    //When User click 'New',remove it and insert new input box and 'Close' 
    $('.new-tree-node-l2').click(function(event) { 
     $(this).parent(':last').after('<input name="" class="new-tree-node-title"><span class="new-tree-node-close">[Close]</span>'); 
     $(this).remove();  
    }); 

    //When user click the 'Close',do something.. 
    $('.new-tree-node-close').click(function(event) { 
     alert("Do Something..."); 
    }); 
}); 

Here is the main code and more detail in the jsfiddle.

+0

您需要使用jquery live函數爲動態添加的元素綁定函數。 $('。new-tree-node-close')。live('click',unction(event){} – 2011-06-06 07:39:55

+0

謝謝@ Jayantha,直到今天我從不關注這個函數。謝謝! – Xhinking 2011-06-06 07:44:39

回答

6

更改代碼

//When user click the 'Close',do something.. 
$('.new-tree-node-close').live('click', function(event) { 
    alert("Do Something..."); 
}); 

使用live,而不是點擊。