jquery
  • jquery-ui
  • jquery-ui-tooltip
  • 2013-03-28 67 views 1 likes 
    1

    我遇到了一個問題,如果您選擇多個實例使用jQueryUI工具提示ajax調用導致工具提示未能關閉。jqueryui工具提示無法關閉時使用ajax回調

    我已經在這裏證明它,http://jsfiddle.net/MHptk/11/

    var html = ''; 
    var testbox = $("#testid"); //div element 
    for (var i=0; i<25; i++) { 
    html += '<a href="#" title="test!">test!</a><br />'; 
    } 
    
    testbox.html(html); 
    
    testbox.tooltip(
        {tooltipClass:'preview-tip', 
        content: function(callback) { 
         $.ajax({url: '/echo/html/', 
           data: { 
            html: 'woop!', 
           }, 
           method: 'post', 
           success: function(data) { 
            callback(data); 
           }, 
         }); 
        }, 
        }); 
    

    將鼠標滾動快速通過鏈接,你會看到工具提示,無法關閉。在我現實生活中的例子中,我創建了一個包含多個鏈接的jquery ajax調用表,它們本身會發出ajax請求。我也嘗試使用open:來設置內容,但是發生了同樣的問題。

    對於解決方法,我認爲我可以直接在創建表時填充標題attr,但由於數據的高度不穩定性,這不適合。

    回答

    0

    我認爲只是大量的鏈接如此緊密,再加上ajax調用導致的問題。如果你將它們分散一點,我不會看到同樣的問題。這是很多阿賈克斯電話快速接連發射。

    我只是插入<p>no link</p>到您的小提琴給它更多的空間

    new fiddle link

    +0

    即使在你的例子中,我仍然有多個工具提示。這裏有沒有已知的問題/錯誤?如果知道,我可以愉快地等到新版本發佈。否則,它看起來像一個惱人的,但主要是錯過的錯誤 – Lokicat 2013-04-01 23:49:49

    +0

    我不認爲他們想到這種用例。似乎應該有更好的方法來檢索數據。也許你可以請求所有工具提示下載並保存在一個元素中。這比允許用戶每秒觸發20-30個Ajax請求要高效得多。至少保存響應,以便新的ajax不會針對同一個元素反覆觸發。 – jmm 2013-04-02 00:39:37

    +0

    這有點邪惡,但幸好服務器是本地的,我保持php的請求延遲相當低。不過,我想我會在繪製表格時緩存工具提示var中的所有數據。 – Lokicat 2013-04-02 01:21:03

    1

    可以通過插入有所緩解問題到下列提示...

    close: function(event, ui) { 
        $(".ui-tooltip").hide(); 
    } 
    

    雖然div應該隱藏起來,添加這段代碼會隱藏所有的ui-tooltip div。當一個關閉。我已經在原始消息中引用的小提琴上測試了這一點,並且結果很好。

    相關問題