1

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

这可能意味着单击后,该元素未附加 mouseout 事件,这就是问题存在的原因?

这是我加载 pjax & Tipsy() 的方式

$(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添加到 Tipsy(),结果相同。

4

1 回答 1

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();
});
于 2012-08-23T07:27:27.377 回答