2012-03-26 9 views
0

私は、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は通常どおり処理を続けるべきです。

答えて

1

他の機能の呼び出しを遅らせようとしているとき、私はこのjs関数にいくつかの幸運をもたらしました。

window.setTimeout(function(){callFunction(params);}, 4000); 

これが役立つかどうか教えてください。私はjsと一緒にトリックの袋を持っています。

よろしく、

+0

私はこれを試しましたが、遅延を試みたときと同じ効果がありました - それは、私が別のリンクに移動するまでホバーボックスが残っていることを意味しました – Andrew

1

それでは、あなたが本当にやりたいことはホットスポットエリアにツールチップを含めるとユーザーだけが、最初の項目とツールチップの両方を離れた場合とき/無効です。

deactivate_tiptip()関数を呼び出す 'mouseout'イベントが存在する場所を見つけ、ツールチップクラスに 'add'関数を追加します。私は建築を知らないが、それはおそらく次のようになります。

tiptip.mouseOut(function() { deactivate_tiptip(); }; // Original 
tiptip.add(".TOOLTIP").mouseOut(function() { deactivate_tiptip(); }; // Ammended 

// OR: 

tiptip.on("mouseOut", function() { deactivate_tiptip(); }; // Original 
tiptip.add(".TOOLTIP").on("mouseOut", function() { deactivate_tiptip(); }; // Ammended 

は、あなたが正しいクラスに「.TOOLTIP」を変更する必要があります。これにより、両方を離れるときにのみ非アクティブ化機能が起動されます。

+0

こんにちは - あなたの返信に感謝します。 mouseoutイベントはありません。非アクティブ化が呼び出されるビットはここにある:org_elem.hover(関数(){ active_tiptip();} 、関数(){! IF(opts.keepAlive){ deactive_tiptip();} })。 私はあなたが提案する方法を使用する方法がわかりません – Andrew

+0

こんにちはAndrew、 '.hover()'はjQuery関数です。 org_elemの後に '.add( "。TOOLTIP")を挿入してみてください –