2014-04-04 126 views
2

我希望我的工具提示可以通過點擊打開和關閉。我試圖與API切換功能試驗,但我遇到了問題,你可以在這裏看到:qTip2工具提示立即消失

http://jsfiddle.net/jplew/HK7w3/1/

$(document).ready(function() { 

    $('area').each(function() { 
     var tooltips = $(this).qtip({ 
      content: { 
       button: true, 
       text: function(event, api) { 
        $.ajax({ 
         url: api.elements.target.attr('link') // Use href attribute as URL 
        }) 
        .then(function(content) { 
         // Set the tooltip content upon successful retrieval 
         api.set('content.text', content); 
        }, function(xhr, status, error) { 
         // Upon failure... set the tooltip content to error 
         api.set('content.text', status + ': ' + error); 
        }); 

        return 'Loading...'; // Set some initial text 
       } 
      }, 
      position: { 
       viewport: $(window), 
       my: 'center center', 
       at: 'center center', 
       target: 'mouse', 
       adjust: { x: 0, y: 0 } 
      }, 
      show: { 
       event: 'click', 
       delay: 0, 
      }, 
      hide: { 
        event: 'click', 
        fixed: true, 
        delay: 0, 
       }, 
      style: 'qtip-rasa-apt', 
     }); 

     var api = tooltips.qtip('api'); 

      $(this).click(function(event) { 
       api.toggle(true, event); // Pass event as second parameter! 
      }) 
    }); 

}); 

注:我使用AJAX來加載提示內容,所以跨域訪問控制防止加載實際圖像。這裏是我的服務器上正確加載AJAX的同一件事:http://rasamritakunj.com/qtip

無論jsfiddle中缺少的內容,即使點擊「error:」工具提示,問題也是顯而易見的。一些提示仍然存在,但點擊幾次後,它們就會閃爍。我認爲問題是,只要我顯示()工具提示,我正在同時做一個hide()。

任何人有任何想法如何解決這個問題?謝謝!

+0

一種解決方法:把'延遲:10'中的 「隱藏」 選項http://jsfiddle.net/HK7w3/8/ – Sga

+0

@Sga:謝謝,試過了,但問題仍然存在。它的作品幾次點擊,然後繼續立即眨眼 –

+1

我認爲你必須刪除最後一部分:'var api = ...',以避免切換 – Sga

回答

1

你要刪除的最後一部分:

var api = tooltips.qtip('api'); 

$(this).click(function(event) { 
     api.toggle(true, event); // Pass event as second parameter! 
}) 

,以避免不必要的切換