jQuery 1.7の時点で、.live()メソッドは非推奨になっていることを知っています。だからこれは私が思いついたものです:
$(document.body).on('click', '#list', function() {
console.log($(this));
});
これはほとんどトリックを行い、以下と同等です:
$('#list').live('click', function(){
console.log($(this));
});
どちらも#listjQueryオブジェクトを返します。これは私が望んでいたものです。ただし、問題は、文字列ではなく、jQueryオブジェクトを2番目のパラメーターとして渡す場合です(これは非常に頻繁に発生します)。例:
var list = $('#list');
$(document.body).on('click', list, function() {
console.log($(this));
});
コンソールは$(body) jQueryオブジェクトを返します。その点では役に立たない。;) 何か案は?
編集:ここでの問題は、例1と2の影響を受けるオブジェクト$('# list ')にアクセスする方法ではなく、例3のオブジェクトにアクセスする方法です。