2012-02-22 52 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(); 
});