jQuery live () vs on () in 1.7+

Ab jQuery 1.7 ist die Methode .live () veraltet. Das habe ich mir also ausgedacht:

$(document.body).on('click', '#list', function() {
    console.log($(this));
});

Was macht den Trick und ist äquivalent zu:

$('#list').live('click', function(){
    console.log($(this));
});

Sie geben beide die zurück#Liste jQuery-Objekt, was ich wollte. Das Problem ist jedoch, wenn ich ein jQuery-Objekt als zweiten Parameter anstelle eines Strings übergebe (was ziemlich oft vorkommt), zB:

var list = $('#list');
$(document.body).on('click', list, function() {
    console.log($(this));
});

Die Konsole kehrt zurück$ (body) jQuery-Objekt. Was in diesem Punkt nutzlos ist. ;) Irgendwelche Ideen?

EDIT: Das Problem ist hierNICHT wie man auf das betroffene Objekt $ ('# list') aus Beispiel 1 und 2 zugreift, aber wie man darauf in Beispiel 3 zugreift.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage