2010-10-27 58 views
1

我使用的是jQuery beauty tips(也是使用hoverIntent plugin),我想在工具提示文本中顯示href鏈接,並允許用戶點擊鏈接。只要光標位於工具提示文本上,如何讓jQuery Beauty Tip保持打開狀態?

但是,只要我們離開主播,在toottip文本一些超時(我們可以定義)

所以我想繼續爲用戶光標在提示文本打開,只要後消失錨點或工具提示文本。

我該怎麼做?這可能嗎?我試過了,沒有成功,是這樣的:

$('.bt').bt({ 
postShow: function(box) { 
    $(".bt-content").hoverIntent({ 
    timeout : 500, 
    over: function() { 
     $(".bt-wrapper").show(); //or $(".bt-active").btOn(); 
    } 
    }); 
} 
}) 

回答

1

這是我能做到迄今爲止最好的: 添加這些代碼在頂端的選項。

trigger: ['mouseenter','click'], 
postShow: function(box){ 
    var that = this; 
    $(box).bind('mouseleave',function() { 
    that.btOff(); 
    }); 
}, 

它的工作原理(至少在Firefox上),但我寧願使用hoverintent。

1

您好,感謝克里斯Cinelli的上述答覆。然而,上述解決方案的問題是,當我們移出錨點時,工具提示仍然存在,只有頁面外的點擊纔會觸發其關閉。

但是,這種行爲似乎是不恰當的,因爲如果鼠標懸停的工具提示彈出窗口應該也會消失(如果在鼠標懸停上定義了行爲的話)。

因此,爲了實現這一行爲,我對chris cinelli提供的解決方案做了其他更改。

解決方案:

我已經定義了一個虛設類toolTipRange到外部容器內,其彈出的外觀是有效的,在後顯示事件

$(「toolTipRange。」)中加入下面的代碼。綁定( '鼠標離開',函數(事件){
   如果(event.relatedTarget.nodeName = 「帆布」){
        that.btOff();!
   }
});

2

這是可能的。以下解決方案使用jQuery 1.7和hoverIntent r5。我在Chrome,Safari,FF 3.7,FF 7和IE8上測試過它。

$('.bt').bt({ 
    postShow: function(box) { 
     $(box).hoverIntent({ 
      over: function() { 
        $(this).data('hasmouse', true); 
      }, 
      out: function() { 
        $(this).data('hasmouse', false); 
        $(box).hide(); 
      }, 
      timeout: 300, 
     }); 
    }, 
    hideTip: function(box, callback) { 
     if ($(box).data('hasmouse')) { 
      return; 
     } 
     $(box).hide(); 
     callback(); 
    }, 
}); 

我再次使用hoverIntent,此時上BeautyTip框中,設置一個標誌,指示鼠標較粗是否仍懸停在工具提示(「數據hasmouse」)。只要該標誌已設置,新的hideTip方法將不會執行任何操作。相反,當自己的「hoverIntent輸出」觸發時,BeautyTip框會被隱藏起來。

相關問題