好的我每隔15秒做一次ajax调用,这是第一次在调用ajax时“禁用”工具提示,我修复了这个运行函数再次调用启动工具提示的函数。
问题是..如果在进行ajax调用时有一个工具提示“打开”,这个只有这个项目的工具提示会被永久销毁,其余的工作正常。当ajax运行时,再次打开工具提示。
我该如何解决这个问题..
这是我的代码
function notifications() {
$.ajax(
{
type: "POST",
//data: dataparam,
url: "<?php echo $notifurl;?>",
success: function(msg)
{
if(msg !="")
{
$("#ajaxnotif").empty().html(msg);
$('.tooltip').remove();
ttp();
//$("#suggestDiv").show();
}
else
{
$("#ajaxnotif").empty().html(msg);
$('.tooltip').remove();
ttp();
//$("#suggestDiv").hide();
}
}
});
}
$(document).ready(notifications);
window.setInterval(function(){
notifications();
}, 15000);
var $tooltip = null;
var $tooltip2 = null;
var $tooltip3 = null;
function ttp() {
$tooltip = $('.marcleidnot[title]').tooltip({
delay:0,
slideInSpeed: 300,
slideOutSpeed: 200,
bounce: false,
/*bounce: false*/
relative: false, // <-- Adding this should sort you out
slideOffset: 5,
/* effect: 'slide',
direction: 'down',
slideInSpeed: 300,
slideOutSpeed: 200,*/
position: 'top center'
});
$tooltip2 = $('.fav[title]').tooltip({
delay:100,
slideInSpeed: 300,
slideOutSpeed: 300,
/*bounce: false,*/
relative: false, // <-- Adding this should sort you out
effect: 'slide',
direction: 'down',
/*slideInSpeed: 300,
slideOutSpeed: 200,*/
position: 'top center',
offset: [10, -2]
});
$tooltip3 = $('.nofav[title]').tooltip({
delay:100,
slideInSpeed: 300,
slideOutSpeed: 300,
/*bounce: true,*/
relative: false, // <-- Adding this should sort you out
effect: 'slide',
direction: 'down',
/*slideInSpeed: 300,
slideOutSpeed: 200,*/
position: 'top center',
offset: [10, -2]
});
}
$('body').click(function() {
$('.tooltip').remove();//remove the tool tip element
});
答案 0 :(得分:1)
我认为您没有正确使用工具提示api。而不是
$('.tooltip').remove();
DO
$tooltip.tooltip("destroy");
$tooltip2.tooltip("destroy");
$tooltip3.tooltip("destroy");
答案 1 :(得分:1)
感谢user3352495,我弄清楚问题是什么,然后我找出了这个
$tooltip = $('.marcleidnot[title]').tooltip("destroy");
$tooltip2 = $('.fav[title]').tooltip("destroy");
$tooltip3 = $('.nofav[title]').tooltip("destroy");
到目前为止工作正常
实际上我发现我只需要删除它!
只需重新启动功能
TTP();在ajax解决这个问题:D
答案 2 :(得分:0)
问题是Jquery Tools中的工具提示默认情况下不会创建.tooptip
元素,而只会在第一次出现工具提示时创建它们。因此,在您的情况下,当$tooltip
出现时,只有一个.tooltip
元素与之关联,另外2个元素尚未出现。
要全面删除所有工具提示,您可以使用this plugin。如果它已经存在,它将删除.tooltip
元素,如果不存在则取消绑定鼠标事件。添加插件后,您只需拨打$tooltip.tooltip('remove')
即可。