ホームページ > ウェブフロントエンド > jsチュートリアル > jqueryのtrigger()がホバーevent_jqueryをトリガーできない問題の解決策

jqueryのtrigger()がホバーevent_jqueryをトリガーできない問題の解決策

WBOY
リリース: 2016-05-16 16:00:25
オリジナル
1202 人が閲覧しました

今日プロジェクトに取り組んでいて、これまでに経験したことのない問題に遭遇したのでメモしておきます。

1. トリガーメソッドの説明

これは公式の説明です:

コードをコピーします コードは次のとおりです:

説明: 指定されたイベント タイプの一致した要素に関連付けられたすべてのハンドラーと動作を実行します。

使用法:
.trigger(eventType [, extraParameters] )

eventType には、JavaScript 組み込みイベント、jQuery 追加イベント、カスタム イベントが含まれます。例:

$('#foo').bind('click', function()
{
 alert($(this).text());
});
$('#foo').trigger('click');
$('#foo').bind('custom', function(event, param1, param2)
{
 alert(param1 + "\n" + param2);
});
$('#foo').trigger('custom', ['Custom', 'Event']);
ログイン後にコピー

は非常に強力で、ページの初期化中によく使用されます。

2. トリガーとホバーの組み合わせ

var $search=$('#header .search');
$search.find('li').hover(function()
{
 alert(1);
},function()
{
 alert(2);
});
$search.find('li').eq(0).trigger('hover');
ログイン後にコピー

ホバーをトリガーできません。しかし:

var $search=$('#header .search');
$search.find('li').click(function()
{
 alert(1);
},function()
{
 alert(2);
});
$search.find('li').eq(0).trigger('click');
ログイン後にコピー

トリガークリックは正常です!

解決策:

var $search=$('#header .search');
$search.find('li').hover(function()
{
 alert(1);
},function()
{
 alert(2);
});
$search.find('li').eq(0).trigger('mouseenter');//hover修改为mouseenter/mouseleave/mouseover/mouseout
ログイン後にコピー

jQuery.live() にも同じ状況が存在しますが、1.7 以降のバージョンでは live の使用は推奨されません。代わりに on() を使用してください。

以上がこの記事の全内容です。皆さんに気に入っていただければ幸いです。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート