2014-01-17 68 views
1

我正在努力正確定位動態生成的段落。這個問題似乎是,$(this).outerWidth指的是span.simpleTooltip而不是段落本身。如何獲得已創建段落的外部寬度

$(document).on('mouseenter', "span.simpleTooltip", function(event) { 

$('<p></p>') 
    .addClass("tooltip") 
    .text("foo bar bla") 
    .offset({left: $(this).outerWidth()}) 
    .appendTo('body')     
    .fadeIn('slow');   
}) 
+5

沒有寬度,直到你它附加到的元素。畢竟,寬度將由新的父元素的寬度決定,該寬度可能非常大或很小。 – Sampson

+1

因爲'this'是指引發行動的元素 – Andy

+0

嘗試類似這樣'$ this = $('

');'然後使用'$ this'而不是'$(this)' – dreamweiver

回答

1

試試這個:

var $paragraph = $('<p>').hide().appendTo('body)'; 
    $paragraph.addClass("tooltip").text("foo bar bla"); 
    $paragraph.offset({left: $paragraph.outerWidth()}); 
    $paragraph.fadeIn('slow');   
+0

這就是竅門,thx Ruben! – nevrx

0

試試這個:

$('span.simpleTooltip').on('mouseenter', 'document', function(event) { 
... 
}); 
+0

我試過了,但是mouseenter根本沒有開火。不管怎麼說,多謝拉。 – nevrx