0

ここで説明するように、JavaScriptを使用してカスタム選択を作成しました:http://v2.easy-designs.net/articles/replaceSelect/

重要なアイデアは、selectが2つを含むもので構築されているということです(私の場合)

  • s。私がやりたいのは、次のようなものを読み取る必要があるonmouseover関数を追加することです。

    ulNode.onmouseout = function() {
          if (ulNode.className.indexOf('selectOpen') !- -1){
             selectMe(li[0]);
          }
    }
    

    つまり、マウスがulを離れ、ulが開いている場合は、最初の要素を選択する必要があります。これは正常に機能します、含まれているulを残していない場合でも、マウスをli間で移動するとこの関数が呼び出されます。なぜそれが起こるのか、何か考えはありますか?

    前もって感謝します!

  • 4

    2 に答える 2

    3

    mouseoverそしてmouseout、この場合のイベントの間違った王です。mouseoutイベントを持つ要素内に他の要素がある場合、それらはあまりにも頻繁に発生します。あなたは次のようなものが必要mouseleaveですmouseenter

    jQueryでのMouseleave

    于 2011-02-03T12:13:17.817 に答える
    1

    次のように、mouseoutイベントの前に遅延を実装してみてください。

    var hover_to = null;
    $("ul").mouseover(function() {
       window.clearTimeout(hover_to);
       // (A) your stuff...
    }).mouseout(function() {
       hover_to = window.setTimeout(function() {
          // (B) your stuff...
       },200);
    });
    

    これにより、不要なアトミックイベントが処理されることが期待されます。のスコープに注意して(B)ください。

    于 2011-02-03T12:27:54.160 に答える