0

ここから入手したメガ メニュー スクリプトを使用しています。私のページにこれらのいくつかがあることを除いて、メニューが開く前にユーザーがリンクの上にマウスを置かなければならないという遅延が必要であることを除いて、それは完全に機能します。

ユーザーがリンクからマウスを離したときのために、setTimeout() タグと clearTimeout() を使用してこれを行う必要があることはわかっています。私はこれをどこに置くべきか分かりません。推測してみましたが、これをどこに置いても、機能が壊れるか問題にならないようです。

誰かが私に提供できるかもしれない助けをありがとう、それは大歓迎です。

4

2 に答える 2

1

基本的な考え方はこのようなものですか?

var timeout;
$('#menuID').mouseenter(function(){
  clearTimeout(timeout);
  $(this).children().show();
}).mouseleave(function(){
  timeout = setTimeout(function(){
    $(this).children().hide();
  },400);
});

メーカーが上記と同じ方法を使用したことに注意してください。

" ps: .js ファイル内には、微調整したい変数が 2 つあります。 "

effectduration: 300, //duration of animation, in milliseconds
delaytimer: 200, //delay after mouseout before menu should be hidden, in milliseconds
于 2012-07-27T12:43:08.650 に答える
0

この関数を使用して、必要なものに遅延を追加します

// Function declatation
var delay = (function()
{
    var timer = 0;
    return function(callback, ms)
    {
        clearTimeout(timer);
        timer = setTimeout(callback, ms);
    };
})();

利用方法:

delay(function()
{ 
    // Do thing you want delayed
}, 1000 ); 

1000遅延させたいミリ秒の量に置き換えます


編集

$("#menuitem").mouseenter(function()
{ 
    delay(function() 
    { 
        if($(this).is(':hover')) 
            // Show menu
    }, 1000 );     
});
于 2012-07-27T12:48:31.110 に答える