我正在研究一個jQuery教程,並且有些東西我不太明白爲什麼。以下是我從教程中刪除的部分。粗體的句子是我不理解的部分,希望有專家向我解釋。非常感激!帶上下文傳遞的jQuery選擇器
「使用Ajax加載內容時遇到的一個非常常見的問題是:向文檔添加事件處理程序時,也應該應用於加載的內容,必須在內容加載後應用這些處理程序。 ,您可以委託給一個函數實例:
function addClickHandlers() {
$("a.remote", this).click(function() {
$("#target").load(this.href, addClickHandlers);
});
}
$(文件)。就緒(addClickHandlers); 現在當DOM準備好,然後每次當用戶點擊帶班的鏈接addClickHandlers被調用一次。遠程和內容已完成加載。
請注意$(「a .remote「,this)查詢,這是作爲上下文傳遞的:對於文檔就緒事件,它引用文檔,因此它會在整個文檔中搜索遠程類的錨點。 當使用addClickHandlers作爲load()的回調函數時,它指向一個不同的元素:在本例中,id爲target的元素。這防止了click事件一次又一次地應用到同一個鏈接,最終導致飛機墜毀「
Raynos - 感謝您的回答。因此,當addClickHandlers用作load()的回調函數時,** this **引用id =「target」的元素。這是否意味着click事件綁定的選擇器變爲$(「a.remote」,「#target」)? – tamakisquare 2011-05-10 18:28:58
@ahmoo是的。它也將永遠遞歸;) – Raynos 2011-05-10 18:30:55
這就是我原先想的,但後來我不知道片段試圖達到什麼,所以我想我一定錯過了一些概念。你能說出這段代碼是否有用嗎?或者這是一個沒有意義的例子? – tamakisquare 2011-05-10 18:40:37