2017-02-23 7 views
1
$(document).tooltip({ 
    items:'.tooltip-object', 
    tooltipClass:'preview-tip', 
    position: { my: "left+15 top", at: "right center" }, 
    content:function(callback) { 
     $.get('/resources/generate_tooltip.php', { 
      id:$(this).data("tooltipid") 
     }, function(data) { 
      callback(data); 
     }); 
    } 
}); 

私は、ユーザーがツールチップ - オブジェクトリンクの上にカーソルを置いたときにツールチップを表示する上記のスクリプトを持っているとします。ツールチップの表示はうまくいきますが、ユーザーがマウスを複数のリンクに素早く移動させると、表示されなくても/resources/generate_tooltip.phpスクリプトが呼び出されます。JQuery UIツールチップマウスのホバーの遅延?

ツールチップが生成される前に一定の時間、ツールチップオブジェクトにマウスを置かなければならないように、ツールチップに遅延を追加するにはどうすればよいですか?

答えて

0

更新:アラートのthis.insteadのようなものを試すことができますあなたのajax呼び出しを行います。あなたのcontent:function(callback) {インサイド

var timeout;var counter=0; 
 
$(function() { 
 
$(".selector").tooltip(); 
 
}); 
 
$(".selector").hover(function(e){ 
 
var $this=this; 
 
if (!timeout) { 
 
    timeout = window.setTimeout(function() { 
 
     timeout = null; 
 
     $($this).tooltip("option", "content", "Awesome title!"+(counter++)); 
 
    }, 1000);//delay of 1 second 
 
}},clearIt); 
 
function clearIt() { 
 
if (timeout) { 
 
    window.clearTimeout(timeout); 
 
    timeout = null; 
 
} 
 
}
<link rel="stylesheet" href="https://code.jquery.com/ui/1.12.1/themes/smoothness/jquery-ui.css"> 
 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 
 
<input title="hi" class='selector'>

+0

はい、OKそれは理にかなっているが、どのように私はHI」(アラートを置き換えます")をツールヒントのコンテンツを生成したスクリプトで編集し、そのコンテンツをツールチップに配置しますか? – user2827048

+0

@ user2827048更新を参照してください。役立つことがあります。 http://api.jqueryui.com/tooltip/#option-contentを参照してください。 –

1

、ツールチップがどれもこれでトリガーされていない場合はチェックを追加します。

if ($(".your-tooltip-class").length == 0) { 

$.get('/resources/generate_tooltip.php', { 
      id:$(this).data("tooltipid") 
     }, function(data) { 
      callback(data); 
     }); 
}