2012-02-22 60 views
1

在pjax鏈接上使用jquery.tipsy時,工具提示不會在點擊後隱藏在鼠標移出。jQuery的pjax + jQuery的工具提示不隱藏在鼠標點擊後

這可能意味着在點擊之後,mouseout事件從該元素中脫離出來,這就是問題存在的原因?

下面是如何加載pjax &醉意()

$(function() { 
    $('[data-pjax]').pjax('#offer-table', {timeout: 100000}) 
}) 


<script type='text/javascript'> 
    $('a.tipsy').tipsy({delayIn: 500}); 
</script> 

jQuery的pjax:https://github.com/defunkt/jquery-pjax

jQuery的醉意:http://onehackoranother.com/projects/jquery/tipsy/

編輯:同樣的結果,如果live: true加入醉意() 。

+1

你應該總是包含指向插件引用/源這樣的人沒有去搜索以幫助你。 – 2012-02-22 13:54:18

+0

補充,謝謝你提供的信息。 – Robert 2012-02-22 18:05:00

+0

這是頁面上所有鏈接的情況嗎?或者只是那些'#offer-table'的孩子的鏈接? – jessegavin 2012-02-22 22:53:13

回答

0

我有類似的問題。一個頁面使用pjax作爲<div data-pjax-container>的內容。容器內的元素具有在鼠標懸停上顯示並在mouseout上隱藏的提示。如果我觸發一個pjax變化,然後在元素髮生變化時將其懸停,那麼這個醉人的永遠不會隱藏,因爲沒有任何元素可以從鼠標移出。

這是我落得這樣做,爲的CoffeeScript:

PJAX_TIPSY_CLASS = "pjax-tipsy" 

$element.tipsy(live: true, className: PJAX_TIPSY_CLASS) 

# pjax changes could leave a tipsy up from the old page. 
$pjaxContainer = $('[data-pjax-container]') 
$pjaxContainer.bind 'pjax:end', -> 
    $(".#{PJAX_TIPSY_CLASS}").remove() 

或者如JavaScript:

var PJAX_TIPSY_CLASS = "pjax-tipsy"; 

$element.tipsy({ live: true, className: PJAX_TIPSY_CLASS }); 

var $pjaxContainer = $('[data-pjax-container]'); 
$pjaxContainer.bind('pjax:end', function() { 
    $("." + PJAX_TIPSY_CLASS).remove(); 
});