我無法使用委託爲$ .each等效語法寫入語法。jquery委託語法.each()
我讀過的所有例子都只是顯示點擊或懸停,但是我怎麼會用代理語法寫這個呢?
$("ul li a").each(function(){
$(this).addClass("foo");
});
乾杯!
編輯:在大量的評論(感謝的方式)後,我想我最好發佈一個更明確的例子。我對之前的問題缺乏細節表示歉意。
說例如我想綁定工具提示到頁面上的錨點。我將有很多我想要設置爲提示的項目,並且我想通過使用委託來減少內存開銷。
按我的理解,這是我會怎麼開始:
$(document).delegate("a.tooltip", "click", function(event){
// run click event
}).delegate("a.tooltip", "hover", function(event){
// run mousenter, mouseleave events.
});
但讓說每一個我想刪除title屬性的錨,因此它不會在瀏覽器中顯示出來,當我徘徊。我會想象(雖然我在這裏猜測)任何像這樣的本地事件都會在我的懸停事件之前運行,所以我想在我懸停之前將其刪除。
通常我會使用這樣的:
$("a.tooltip").each(function() {
// Store our title attribute and remove it so we don't get browser
//tooltips showing up.
$.prop(this, "data-old-title", $.attr(this, "title"));
}).removeAttr("title");
可以這樣做一個更好的辦法?
根據我在評論和答案中的理解,代表僅涵蓋事件,我仍然必須將這些事情分開。
你是不是想用'live'代替'addClass'?你在談論這些代表嗎?:http://api.jquery.com/delegate/ – 2011-06-14 15:54:47
'each'和'delegate'是兩回事。您想做什麼? – 2011-06-14 15:55:22
@Felix Kling:書寫[here](http://api.jquery.com/delegate/)'委託'是使用'.live()'方法的替代方法,允許事件委託的每個綁定到特定的DOM元素。 – diEcho 2011-06-14 15:58:02