2

SOを検索したところ、この質問は何度も行われたようですが、私の例ではうまく機能しないようです。

使用するコードは次のとおりです。http: //jsfiddle.net/vol7ron/w8QsZ/2/

私が探しているのは、flowplayerツールチップに似たものです。ここで:

  • ホバーするとメニューが表示されるトリガーがあります
  • トリガーを離れるとメニューが消えます
  • ユーザーがメニュー(またはツールチップ)にカーソルを合わせると、ポップアップは開いたままになります。

私の推測では、トリガーは少し遅れて消えhoverOut呼び出す必要がありますが、メニューでは、タイムアウトをクリアする必要があります。setTimeout()mouseenter()

私はまだjQueryを初めて使用し、生成されたtimeoutIDをどこに保存し、どこで呼び出すかがわかりません。

注:同じメニューが複数のトリガーに使用されます。


更新:わかりました、私は何かが機能しています:ここで
誰かが私がそれをクリーンアップしてより効率的にするのを手伝ってくれませんか?さらに重要なのは、timeoutIDにグローバルを使用したくないということです。おそらく、それをオブジェクトに保存するためのより良い方法がありますか?

4

1 に答える 1

0

私は最近このようなことをしました。私がすることは

var timer = setTimeout(/*blah*/);
$('#my_selector').data('timer') = timer;

その要素のデータにtimeoutIDをスローし、後でそれを使用して何かを行う必要があるときはいつでも(clearTimeout)、そこから取得できます。

はこの方法を使用しましたが、動的な量の要素に対して機能しました。これはあなたが望むものだと思います。さらに説明が必要な場合はお知らせください。

于 2010-11-16T22:21:04.507 に答える