0

我正在使用 PHP 生成日历,并且我希望每天都有工具提示,其中包含从 Ajax 请求(通过 jQuery)收集的数据。

我已经这样做了,但是当我试图用鼠标光标导航太快时出现奇怪的错误。一些工具提示被卡住了。知道如何纠正吗?

这是我DIV每天的代码:

<div style="-moz-border-radius:8px; border-radius: 8px;" 
   class="pusty" id="dzien_'.$day.'"  
   onclick="idz_do_dnia('.$day.','.$miesiac.','.$rok.','.$gildia[id_gildi].')" 
   onmouseover="zaznacz('.$day.','.$data_s.','.$data_k.','.$gildia[id_gildi].')" 
   onmouseout="odznacz('.$day.')" > 
   &nbsp; 
</div>

这里有 2 个 javascript 函数来显示 tooltim(名为:zaznacz)并隐藏它们(名为:odznacz)

function zaznacz(id,data_s,data_k,gildia)
{
    jQuery("#dzien_"+id).removeClass("pusty");
    jQuery("#dzien_"+id).addClass("zaznaczony");

    jQuery.ajax(
    {
        url: '/raidplanner_mini.php?data_s='+data_s+'&data_k='+data_k+'&gildia='+gildia,
        success:function(data)
        {
            if (!jQuery("#dzien_"+id).hasClass("tooledUp"))
            {
                jQuery("#dzien_"+id).tooltip(
                {
                    content: data,
                    show: false,
                    tooltipClass: "tooltip",
                    hide: false,
                    track: false,
                 }); 
                jQuery("#dzien_"+id).tooltip("open");
                jQuery("#dzien_"+id).addClass("tooledUp"); 
            }
            //else
          //jQuery("#dzien_"+id).tooltip().show();
        }   
    });
}
function odznacz(id)
{
    jQuery("#dzien_"+id).removeClass("zaznaczony");
    jQuery("#dzien_"+id).addClass("pusty");
}

知道如何使它工作吗?

4

1 回答 1

0

此处正在跟踪该错误:http: //bugs.jqueryui.com/ticket/8740

我在我的 chrome 扩展中使用了以下解决方法。我在 jQueryUI 工具提示初始化中添加了一个用于打开的处理程序,如下所示:

    open: function() {
        $(this).one('mouseout.wpcustom', function() {

            $(this)
                .off('mouseout.wpcustom')
                .tooltip('disable')
                .tooltip('enable');
        });
    }

这会强制工具提示.tooltip('disable')在任何 mouseout 事件上关闭(使用 )。在此处查看完整代码:https ://github.com/jncornett/wiki-preview/blob/master/src/js/inject.js

于 2014-03-14T15:57:28.187 回答