ホームページ  >  記事  >  ウェブフロントエンド  >  jQuery_jqueryの$.click()の無効問題の解析

jQuery_jqueryの$.click()の無効問題の解析

WBOY
WBOYオリジナル
2016-05-16 16:16:591799ブラウズ

今日フォームを xls にエクスポートしたときに、a のクリックを自動的にトリガーしたいと思いました。しかし失敗した。ようやくこのファイルを見つけました。

ユーザーがaタグをクリックする動作をjQueryを使ってシミュレーションしようと何度も試みましたが、うまくいかず、長い間悩んでいました。先ほどボーッとしていたところ、新しいアイデアが浮かんだのでテストしてみました。

まず以下のコードを見てください:

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


Motuge-A ラベル テスト 1

http://blog.mo2g.com">モツソング


<スクリプト src="
http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"><スクリプト>
<スクリプト>
jQuery(関数($) {
//クリック トリガー イベントをすべての A タグにバインドします
$('a').click(function() {
アラート(1);
});
//すべての A タグのクリック イベントをトリガーします
$('a').click();
});

上記のコードは確かに A ラベルをクリックするイベントをトリガーしましたが、A ラベルがクリックされたときに A ラベルのジャンプ イベントがトリガーされないのはなぜなのかという疑問も誰もが抱くはずです。

最初は、ブラウザが相応のセキュリティ対策を講じて JS による A タグの操作をブロックしたのだと思いましたが、後でそうではないことが分かりました。

説明を始める前に、質問させてください。 「A ラベル」をクリックしたとき、ジャンプを引き起こすために正確に何をクリックしたのでしょうか?

1)「Aタグ」自体がクリックされていますか?

2) 「Aラベル」に表示されているテキストをクリックしましたか?

ここまでは言っておきましたが、上記のコードでは、A タグ自体をクリックしても、指定されたリンクにジャンプするイベントはトリガーされないことが確認されているということを皆さんも理解してください。つまり、通常は A タグ内のテキストをクリックします。 。 すでに?

アイデアが浮かんだので、試してみましょう。

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


Motuge-A ラベル テスト 2

http://www.mo2g.com">モツソング


<スクリプト src="
http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"><スクリプト>
<スクリプト>
jQuery(関数($) {
var mo2g = 'モヤン市';
//Aタグ内のテキストにjQueryで取得できる要素を追加
$('a').append(mo2g);
//A タグ内のテキストのクリックをシミュレートします
$('#mo2g').click();
});

上記の推論が正しいことが事実で証明されました。したがって、JS を使用して A タグをクリックするイベントをシミュレートしたい場合は、まず JS でキャプチャできる要素をA タグ内のテキストを入力し、JS を使用して要素のクリックをシミュレートします。

上記は、この記事に関連する jQuery の $("a").click() の無効な問題の分析です。気に入っていただければ幸いです。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。