我有一個帶有窗體的div。該表格很小,由一個或兩個下拉/文本框組成。我想知道做什麼需要做以下幾點:將jQuery用於工具提示
- 當我點擊一個鏈接,工具提示彈出與它的形式。它出現在我點擊的鏈接的頂部,這樣當鼠標出現時,鼠標就在它的頂部。
- 當鼠標退出工具提示的邊界時,它會消失。
做一些谷歌搜索,我發現的所有工具提示示例出現在盤旋在給定的區域。我看到的所有jQuery彈出示例都是模態的,並強制用戶明確關閉它。
有沒有人知道一種方法,我可以有一個工具提示工作如上所述?
我有一個帶有窗體的div。該表格很小,由一個或兩個下拉/文本框組成。我想知道做什麼需要做以下幾點:將jQuery用於工具提示
做一些谷歌搜索,我發現的所有工具提示示例出現在盤旋在給定的區域。我看到的所有jQuery彈出示例都是模態的,並強制用戶明確關閉它。
有沒有人知道一種方法,我可以有一個工具提示工作如上所述?
如果你找不到一個可以工作的插件,你所描述的實現起來非常簡單。
您只需將mousemove事件綁定到文檔,並檢查其目標或其目標的父母是否是您的工具提示。
這個例子適用於觸發按鈕,它緊挨着工具提示,但它可以用於直接觸發觸發器,因爲觸發器不會被徘徊。
$("#trigger").hover(function() {
// move the tool tip div into place
// show the tool tip
}, function() {
$(document).bind('mousemove.tooltip', function (e)
{
if (e.target.id !== 'tooltip' && $(e.target).parents('#tooltip').length === 0)
{
// close tooltip
$("#tooltip").hide();
$(document).unbind('mousemove.tooltip');
}
});
});
這是一個基本的小提琴,它作爲描述:
如果你想使用jquery UI插件使用一個對話框和功能,如下列:
$("#yourDialog").dialog({ autoOpen: false });
$("#yourLink").click(function(){
$("#yourDialog").open();
});
$("#yourDialog").mouseover(function() {
}).mouseout(function(){
$(this).close();
});
<script type="text/javascript">
$(document).ready(function() {
$('#mylink').hover(function() {
$('#mytooltip').stop(true, true).fadeIn();
}, function() {
$('#mytooltip').fadeOut();
});
$('#mytooltip').hover(function() {
$('#mytooltip').stop(true, true).fadeIn();
}, function() {
$('#mytooltip').fadeOut();
});
})
</script>
<div id="mylink">My Link</div>
<div id="mytooltip'">My Form</div>
這會在每個元素上放置一個「懸停」事件。只要您的鼠標懸停在任一元素上,它就會調用「stop(true,true)」,從而防止fadeOut發生。一旦鼠標離開元素,工具提示就會消失。
我用這種方法遇到的問題是,只要顯示工具提示,它就會隱藏,因爲瀏覽器認爲光標位於框外。這已經在IE9和Chrome中測試過,都表現出這種行爲。通過爲div指定一個onmouseout處理程序,我也遇到了這個問題。 – MarkP
在添加mousemove處理程序之前是否顯示了該框? – BNL
我從這個樣本取得的代碼有點不同。觸發器是工具提示旁邊的一個按鈕,所以當觸發器按鈕懸停時,它會有一個懸停事件顯示該框。然後該函數的unhover部分將聲明mousemove處理程序。我會把這個添加到這個例子中。 – BNL