2012-06-19 37 views
1

這可以工作,但是當我第一次懸停時,什麼也不加載。當我將鼠標關閉然後重新打開時,ajax已加載。我想要在第一次懸停時加載ajax。將鼠標懸停兩次以便加載ajax

的index.html

<span title="" id="test" class="tooltip"></span> 

tooltip.html

<span id="test">this is ajax</span> 

jQuery的

$('.tooltip').hover(function() { 
    var id = $(this).attr('id'); 
    $.get('tooltip.html #'+id, function(data) { 
     $('#'+id).attr('title', data); 
    }); 
}); 
+0

你確定它第一次不起作用嗎?畢竟這是一個AJAX請求,可能需要幾毫秒(或更長時間)。使用網絡分析器工具(如Firebug或Chrome的分析器)來驗證是否在懸停時發出AJAX請求(或不)。 – kevin628

+1

爲什麼too​​ltip.html包含整個HTML,如果你實際使用它作爲屬性值? – raina77ow

回答

1

看起來你是依靠瀏覽器的內置工具提示(顯示在懸停的稱號。)該工具提示可能由mouseover事件觸發,這意味着在您動態添加d標題,則需要另一個mouseover事件才能實際觸發工具提示。似乎它按設計工作。

1

這是因爲第一次懸停(實際上是mouseenter事件),ajax函數會加載數據並更改標題,但是mouseenter事件已經被觸發,並且您的工具提示已經打開,所以爲時已晚。

最好的辦法是直接改變工具提示,而不是改變原始元素的標題。

你實際上應該做的是改變你的懸停功能並檢查標題,以便下次發生懸停時不需要再次加載信息,而是參考你已經填充的標題。

希望幫助:)

0

由於earier指出,問題是,瀏覽器,只要將鼠標懸停在元素顯示內置的標題,和Ajax使用一些時間來加載內容並追加它。

我會建議你使用了MANY工具提示插件在那裏的一個:https://www.google.com/search?q=tooltip+jquery+plugin

我已經受夠了qTip一些很好的經驗。易於安裝,易於恢復。