Ответ 1
Обычно это делается с помощью Event#findElement
:
document.observe('click', function(e, el) {
if (el = e.findElement('.foo')) {
// there your `el`
// might want to stop event at this point - e.stop()
}
});
Мне нужно привязать прослушиватель событий ко всем динамически созданным элементам с помощью селектора css.
В jQuery это будет
$(".foo").live("click", function(e) {
// bar
});
Есть ли эквивалент в Prototype для этого?
Обычно это делается с помощью Event#findElement
:
document.observe('click', function(e, el) {
if (el = e.findElement('.foo')) {
// there your `el`
// might want to stop event at this point - e.stop()
}
});
Правильный ответ на вопрос: http://gurde.com/2011/08/jquery-live-in-prototype/
Эквивалент jQuery .live()
в Prototype - это метод Event.on():
var handler = document.on(
'click',
'div[id^="post-"] .attached-post-thumbnail',
function(event, element) {
console.log(this);
console.log(element);
}.bind(this)
);
handler.stop();
handler.start();
Внутри обратного вызова это ключевое слово всегда будет ссылаться на исходный элемент (в этом случае документ).