私は、tipTip(http://code.drewwilson.com/entry/tiptip-jquery-plugin)というjqueryプラグインを使用しています。私はこれをeコマースサイトに使用しています。ユーザーが製品イメージの上を移動すると、商品に関する詳細情報が表示された情報ボックスが表示されます。jquery fadeOutを遅らせる
tipTipのデフォルトの動作は、ユーザーがリンクからマウスを離すと、ホバーボックスが消えることです。また、keepAlive:trueを設定して、マウスをホバーボックスの上に移動させてボックスを消すように設定することもできます。どちらのシナリオも私にとっては正しいことではありません。私はホバーボックスにリンクを持っているので、ユーザーはそれを消さずにボックスに入ることができる必要があります。しかし、私はまた、ユーザーが箱に入ってそれを消すように要求されることを望まない。リンクとボックスの両方を移動すると、リンクが消えます。
これを回避するために、jquery delay()をtipTipのjavascriptに配置しようとしています。私はまた、setTimeoutを使って試しました。しかし私は、ユーザーが別のリンクに移動するまでホバーボックスが残っているということを私が知ることができたことを知りました。一方、delay()は、ユーザーが別のリンクに移動したかどうかにかかわらず、指定したミリ秒後に消滅することを意味します。私は最後の数行を修正することによって遅延を達成しようとしてきたhttp://code.google.com/p/geoapps/source/browse/trunk/capstones/talha_khopekar_2012/jquery.tipTip.js?spec=svn108&r=108
:
現在地フルtipTip jsのコードを見ることができます。
function deactive_tiptip(){
opts.exit.call(this);
if (timeout){ clearTimeout(timeout); }
tiptip_holder.delay(1000).fadeOut(opts.fadeOut);
}
しかし、私が言ったように、この効果は、ユーザーが別のリンクに移動し、新しいホバーボックスをアクティブにするまで、ホバーボックスが所定の位置に残っていることです:私は次のように遅延を追加してみました。私は本当になぜこれが理解できないのですか?私の理解では、遅延関数は単にfadeOutを1秒遅らせる必要があり、fadeOutは通常どおり処理を続けるべきです。
私はこれを試しましたが、遅延を試みたときと同じ効果がありました - それは、私が別のリンクに移動するまでホバーボックスが残っていることを意味しました – Andrew