我寫一個簡單的提示:這個jQuery選擇器如何工作?
$(function() {
$('a').hover(function() {
var curLink = $(this);
var toolTipText = curLink.attr('title');
if (toolTipText)
{
var theOffset = curLink.offset();
$('body').prepend('<div id="toolTip">'+toolTipText+'</div>');
// how the heck is this working???
$('#toolTip').css({
'left' : theOffset.left+'px',
'top' : theOffset.top - 30+'px'
});
}
}, function() {
$('#toolTip').remove();
});
});
正如你可以看到一個div「工具提示」的ID,當用戶將鼠標懸停在鏈接動態添加到DOM。當DOM加載時,最初並不存在div,但稍後添加。所以我認爲我必須使用live()
函數並附加一個事件。但是,如果我把它當作一個普通的選擇器,它會如何工作。不是我在抱怨,但這是如何工作的?
請記住,即使您不得不使用'.live()',您將不得不使用'.delegate()'而不是'.live()'。由於'.live()'將應用於整個DOM和'.delegate()'特定的DOM元素。它的性能更好。 – PeeHaa