0

編集

私はまだこれを機能させることができません....

以下のコードを試してみましたが、ページでは機能しますが、動作させたいdivとスパンでは機能しません...

2hon5.netにアクセスすると、コードが機能していることがわかります。2hon5.net/js/ 2hon5.jsのコードを介してポップアップが表示されます。

 $("#wordInf").css({'display':'block'}); 

(デフォルトでは非表示になっています) 私が試したコードもすべて見ることができます。

編集を終了

私はこれを含む多くの解決策を試しました:同様の質問私はうまくいきませんでした。ホバーするスパンに応じて動的な情報を表示する情報ポップアップがあります。現在のスパンのすぐ下にポップアップするように設定しました。呼び出し元のスパンまたは div 自体がホバーされなくなった場合 (リンクが含まれているため)、少し遅れて消えます。運がなかったのですが、何か提案はありますか?

<span onmouseover='callHover(code1234,this)' class='code 1234'>The calling span</span>
<span onmouseover='callHover(code1235,this)' class='code 1235'>The calling span</span>

呼び出された div は次のとおりです。

<div id="codeInf" >
<span id="code_id">generated code here</span>
<a href="#">link 1</a>
<a href="#">link 2</a>
<a href="#">link 3</a>
<a href="#">link 4</a>
</div >

div を呼び出す jquery は次のとおりです。

$("#codeInf").mouseover(showCode);
var showCode = function(ev) {
  var pos = $("#codeInf").offset();  
  var width = $("#codeInf").width();

  $("#codeInf").css( { "left": (pos.left + width) + "px", "top":pos.top + "px" } );
  $("#codeInf").show();
}

上記にリンクされている質問のコードを試しましたが、機能しません。コードを呼び出す方法が原因でしょうか?

私が望む結果は、呼び出しスパンまたは codeInf div がホバーされなくなった場合にコードを非表示にするコードです。別のスパンから呼び出されました。

アドバイスをよろしくお願いします。

マーク

4

3 に答える 3

1

これは完璧な結果ではありませんが、onmouseout'hideChar()' を呼び出して生成された div に追加することで問題を解決しました。

Thin div をホバーするかどうかを設定するために bool を実行しました。

var isWordHover=new Boolean(0);
var isCharHover=new Boolean(0);

function charHover2(){
isCharHover=Boolean(1);
setTimeout(HC, 4000);
}

マウスアウトで値0、マウスオーバーで値1になるように設定しました。いくつかのバグを解決する必要があります (マウスが動かないこともあります... しかし、ポップアップが非表示になり、ホバーしてリンクをクリックできるようになります。

アドバイスありがとうございます。

マーク

于 2011-11-12T15:37:59.977 に答える
1

jQueryのホバードキュメントを見てください

例:

$("li").hover(function () {
    // focus
}, function () {
    // lost focus
});
于 2011-10-18T15:14:30.933 に答える
1

簡単なことは、スパンとポップアップの div の両方に mouseleave を追加することです。

      $("span").hover(function() {
          // hide all other divs
          $("div").slideDown("slow");
      });

      function hidepanel() {
          if ($('div').is(':hover') === false) {
              $('div').slideUp(); 
          }
      }

      $('div').mouseleave(function() { setTimeout(hidepanel, 4000); });
      $('span').mouseleave(function() { setTimeout(hidepanel, 4000); });

http://jsfiddle.net/8CRVX/

于 2011-10-18T15:26:22.867 に答える