在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(),则结果相同。
答案 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();
});