2011-10-12 77 views
0

我正在嘗試編寫一個由錶行組織的動態表單。只要用戶點擊+,就會插入一行新的輸入。爲簡單起見,我刪節代碼:jquery收聽新增對象的事件

<table id="test"> 
<tr> 
    <td> 
     <a class="addrow" href="javascript:void(0);">+</a> 
    </td> 
</tr> 
</table> 
<script> 
$('.addrow').click(function() { 
    $("#test tr:last").after('<tr><td><a class="addrow" href="javascript:void(0);">+</a></td></tr>'); 
}); 
</script> 

我的問題是,只有第一個+將執行腳本,當新插入+ S被點擊,什麼都不會發生。我懷疑這是由於jquery沒有正確地收聽新添加的對象的事件。我嘗試添加$(document).ready(function(){});我試着添加$(document).ready(function(){});幾乎沒有運氣。

任何幫助表示讚賞。

由於提前,

回答

1

當你試圖對事件做出反應的在DOM不存在的元素,當事件被束縛,你需要使用live()delegate()

$('.addrow').live('click',function(){ /* click handler in here */ }) 

或者與delegate()

$('#table').delegate('.addrow','click',function(){ /* click handler in here */ }); 

參考文獻:

+0

謝謝。這幫了很大的忙! – rickypai

+0

絕對受歡迎!我很高興得到了幫助,並感謝*你*接受..! =) –

0

用途:

$('.addrow').live('click', function() { 
    $("#test tr:last").after('<tr><td><a class="addrow" href="javascript:void(0);">+</a></td></tr>'); 
}); 

這是否幫助?