我正在使用Chrome擴展程序,並且我在調用的click()方法僅在將其粘貼到擴展檢查器的控制檯後才起作用。jQuery只適用於將其粘貼到控制檯中時
標記是像這樣:
<ul id="results-list">
<li><a href="#">something</a></li>
<li><a href="#">something</a></li>
... and so on ...
</ul>
所以,沒有什麼特別的,真的。但是,這些<li><a>...</a></li>
正在基於從表單提交返回的json數據進行填充。所以,我認爲這與onReady()中沒有的元素有關,但我已經嘗試了很多次,將匿名方法(下面)放在onReady之外,在onReady之外,並且在onSubmit之外的&之內,並且仍然沒有運氣。
我jQuery是以下幾點:
$(document).ready(function(){
$('form').submit(function(){
... make the JSON request & populate the form ...
});
$("#results-list a").click(function(){
$('body').width(600);
return false;
});
});
任何人有任何見解呢?我在想這是我的.click()
方法的位置,或者我不知道的Chrome擴展技術。
謝謝!
對於頁面最初加載之後添加元素,你必須使用'.live()':http://api.jquery.com/live/ –
謝謝,吉姆。這工作完美。 – Connor
沒問題!還有一個'.delegate()'函數。這允許您綁定添加到另一個元素內部的元素(換句話說,從添加的元素的父級上委託一個函數)。我沒有必要使用它,因爲我沒有很多動態添加的元素。如果你有很多列表項,你可能想看看它:http://api.jquery.com/delegate/ –