2011-04-12 57 views

回答

2

按照常見問題,有一個API的方法,讓你觸發關閉:

作爲新的clueTip 1.0.3:如何編程關閉(隱藏)一clueTip? 如果要觸發clueTip收的基礎上,其他一些互動,您可以使用下面的代碼: $(document).trigger('hideCluetip');

所以我認爲你可以做這樣的事情:


$('#myCluetip').cluetip({ 
    onShow: function() { 
    $(document).one('mousedown',function() { 
     $(document).trigger('hideCluetip'); 
    }) 
    }); 
}); 

這是通過將mousedown事件的一次性事件處理程序綁定到文檔主體,然後觸發Cluetip人員說的事件將隱藏打開的Cluetips。使用一次性事件處理程序意味着每次有人點擊某件事物時,都不會發送hideCluetip觸發器。

+0

我最終採取使用hideClueTip但綁定的這一概念,並解開了取決於點擊是否在提示中(我決定在點擊提示外點擊時關閉提示),通過onShow和onHide掛鉤捕獲鼠標事件。 – momos 2011-04-15 04:10:45

+0

@mornos好主意! – Richard 2011-04-15 05:17:29

+0

@mornos - 你可以發佈你的解決方案嗎? – leora 2011-10-06 02:07:05

0

這將有助於看到你的代碼,但無論如何,你可以沿着這些線做些事情;

$(document).click(function(e) { 
    if (!$(e.target).hasClass('cluetip')) 
    { 
     // Close the cluetip here. 
    } 
}); 
1

Stony的解決方案並不適合我。

我使用@Gary Green的解決方案,它工作正常 - 但這仍然不是我想要的確切的「關閉mouseout/hoverout」解決方案。

最後,我發現Cluetip本身提供了一種方法來做到這一點。

只需設置值「mouseOutClose:假」,像這樣:

$("#myForm :input").cluetip(
    { 
     sticky: true, 
     closePosition: 'title', 
     arrows: true, 
     mouseOutClose: true 
    } 
); 
+0

只需添加,您需要爲mouseOutClose添加粘性選項才能工作。 – Purus 2013-10-17 17:09:51

3

我是這樣做的:

onShow: function() { 
     // close cluetip when users click outside of it 
     $(document).click(function(e) { 
      var isInClueTip = $(e.target).closest('#cluetip'); 
      if (isInClueTip.length === 0) { 
       $('.cluetip-default').hide(); 
      } 
     }) 
    }, 
+0

+1。作品完美。 – Purus 2013-10-17 17:45:06