Ответ 1
Предполагая эту структуру HTML:
<ul id="navUL">
<li><a href="one.html">One</a></li>
<li><a href="two.html">Two</a></li>
<li><a href="three.html">Three</a></li>
</ul>
Просто чтобы очистить вещи (для меня).... Согласно документам jQuery (http://api.jquery.com/delegate/):
$("#navUL").delegate("a", "click", function(){
// anchor clicked
});
... эквивалентно этому:
$("#navUL").each(function(){
$("a", this).live("click", function(){
// anchor clicked
});
});
Однако делегирование событий (как я знаю):
$("#navUL").click(function(e) {
if (e.target.nodeName !== "A") { return false; }
// anchor clicked
// anchor is referenced by e.target
});
Итак, вы поймаете событие click на элементе UL, а затем выясните, какой якорь на самом деле щелкнул через свойство event.target
.
Я не знаю о методе delegate(), но этот последний метод всегда должен быть быстрее, чем привязывать обработчики событий к каждому якорю в элементе #navUL, например:
$("#navUL a").click(function() {
// anchor clicked
// anchor is referenced by the this value
});