Я знаю, как jQuery 1.7, метод .live() устарел. Так вот что я придумал:jQuery live() vs on() in 1.7+
$(document.body).on('click', '#list', function() {
console.log($(this));
});
Который довольно много делает трюк и эквивалентно:
$('#list').live('click', function(){
console.log($(this));
});
Они оба возвращают #list JQuery объект, который является то, что я хотел , Проблема, однако, когда я передать объект JQuery в качестве второго параметра, вместо строки (что случается довольно часто), например:
var list = $('#list');
$(document.body).on('click', list, function() {
console.log($(this));
});
Консоль возвращает $ (тело) JQuery объект. Что бесполезно в этом вопросе. ;) Любые идеи?
EDIT: Проблема здесь НЕ как получить доступ к пораженной объект $ («# список») из примера 1 и 2, но как получить к нему доступ в примере 3.
Можно создать дубликат: http://stackoverflow.com/questions/8042576/whats-the-difference-between-jquery-live-and-on –
Не думаю. Я описал свою проблему относительно доступа к объекту, затронутому событиями, а не к различию между этими двумя методами. – acid
Консоль возвращает именно то, что ожидается $ (это) относится к document.body в этом случае – AbstractChaos