jquery pjax + jquery在点击后,工具提示不会隐藏在mouseout上

时间:2012-02-22 10:50:32

标签: javascript jquery pjax tipsy

在pjax链接上使用jquery.tipsy时,点击后工具提示不会在mouseout上隐藏。

这可能意味着在点击之后,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 tipsy:http://onehackoranother.com/projects/jquery/tipsy/

编辑:如果将live: true添加到tipsy(),则结果相同。

1 个答案:

答案 0 :(得分:0)

我遇到过类似的问题。页面使用pjax作为<div data-pjax-container>的内容。容器内的元素具有在鼠标悬停时显示并在鼠标悬停时隐藏的技巧。如果我触发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();
});