ここでうまく機能する簡単なhover()イベントがあります:http ://waterworks.reuniondesign.com/rates (伝票番号の1つにカーソルを合わせる)
そして、それは私がそれを隠していないここのホームページでうまく機能します:http ://waterworks.reuniondesign.com/ (下にスクロール)
しかし、ホームページの「マリーナのレイアウトはここをクリック」をクリックして、divをシンプルなモーダルボックスにすると、スリップ番号を1回マウスオーバーすると、hover()イベントが2回トリガーされます。何故ですか?変数を設定して、すでに起動されているかどうかを確認してみましたが、うまくいきませんでした。何か案は?
ホバーイベントを実行するコードは次のとおりです。jLoaderはajax関数です。
$(document).ready(function(){
var live = false;
$('.slip').hover(function(){
console.log('opening ' + live);
if (live != true) {
live = true;
console.log('still opening ' + live);
$(this).css('z-index','999');
$(this).delay(500).append("<div id='slip_popup'><div id='slip_details'>loading slip details...</div></div>");
jLoader('/blocks/slip_detail.php?slip_number=' + $(this).attr('id').replace('slip_',''),'replace','slip_details');
}
},function(){
$(this).css('z-index','1');
$('#slip_popup').remove();
live = false
console.log('closing ' + live);
});
});
最後に、append()関数の前に遅延関数が機能しない理由を誰かが知っているなら、私は知りたいです!