web-dev-qa-db-ja.com

アンカーでのjqueryトリガーのホバー

Web環境で開発するためにjQueryを使用しています。

理由を知りたい

 $("#a#trigger").trigger('mouseenter');
 $("#a#trigger").trigger('hover');
 $("#a#trigger").trigger('mouseover');

これらの3つはすべて、私が持っているホバー機能を有効にするために機能していません。

$(function() {


        $('a#trigger').hover(function(e) {
          $('div#pop-up').show();

             }, function() {
          $('div#pop-up').hide();
        });

     });

      });

a#triggerはアンカーの名前であり、#pop-upは私のWebのdiv要素です。

問題は、FullCalendarプラグインのいくつかのイベントの上にマウスを置きたいのですが、それらの機能が機能しないことです。ありがとう。

20
Ori Refael

あなたは正しい軌道に乗っています、問題はセレクタの余分な_#_であり、最初のハッシュを削除するだけです:

_$("a#trigger").trigger('mouseenter');
_

IDは一意でなければならないため、要素タイプを指定する必要がないため、$('#trigger')の方が効率的です。

次の点にも注意してください。

jQuery 1.8で非推奨、1.9で削除:文字列_"hover"_の省略形として使用される名前_"mouseenter mouseleave"_。これらの2つのイベントに対して単一のイベントハンドラーをアタッチし、ハンドラーは_event.type_を調べて、イベントがmouseentermouseleaveかを判断する必要があります。 _"hover"_疑似イベント名を、1つまたは2つの関数を受け入れる.hover()メソッドと混同しないでください。

66
undefined

JQueryセレクターは、たとえば.

_$('a#trigger');
_

$('#a#trigger');の代わりに

JQueryでは、セレクターの#はIDと一致します。この場合、triggerはidですが、aはHTML要素であり、プレフィックスは不要です。

最終的なコードは次のとおりです。

_$("a#trigger").trigger('mouseenter');
$("a#trigger").trigger('hover');
$("a#trigger").trigger('mouseover');
_
9
Jonathan Nicol