У меня проблемы с получением записи синтаксиса для эквивалента $ .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");
Можно ли сделать это лучше?
Из того, что я понимаю в комментариях и ответах, делегат охватывает только события, и мне все равно придется хранить что-то подобное.