ホームページ >ウェブフロントエンド >jsチュートリアル >jquery はボタンのインライン onclick イベントを削除します (テスト済みでブラウザーと互換性があります)_jquery

jquery はボタンのインライン onclick イベントを削除します (テスト済みでブラウザーと互換性があります)_jquery

WBOY
WBOYオリジナル
2016-05-16 17:42:491102ブラウズ

インライン onclick コードは次のとおりです:

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


btnOKコードをクリック
:

コードをコピー コードは次のとおりです: function btnOKClick() {
alert("btnOK Clicked");
}


ボタンをクリックした後、onclick イベントを削除し、新しいクリック イベントをボタンにバインドします。 2 回目のクリックで、2 番目のイベント処理関数の実行が開始されます。2 番目の処理関数のコード:
再クリック コード
:

コードをコピーします コードは次のとおりです。 function reclick() {
alert('reclick')
}
[sS ]*n



Idea
: btnOKClick の onclick を削除し、新しいバインディングを追加します。コードは次のとおりです:

コードをコピー コードは次のとおりです: $('#btnOK').attr('onclick', '').bind(' click', function () { reclick() });

このコードを追加した後の btnOKClick メソッドは次のとおりです。 code

コードは次のとおりです。
このメソッドは Google Chrome では正常に動作します。ただし、IE とは互換性がありません。 reclick メソッドはモードですぐに呼び出されますが、これは私たちが望む効果ではありません。

この効果の理由は、onclick が実行された後、IE が click にバインドされたハンドラーがあるかどうかを確認するために戻って、その構造が存在するため、すぐに実行されるようです。

この問題を解決するには、アイデアを変更して、クリック イベントのバインドを遅らせることができます。具体的なコードは次のとおりです。



コードをコピー


コードは次のとおりです。
タイマーがトリガーされた後、onclick 属性が削除されます。そしてクリックはハンドラーコードにバインドされています。
テスト後、IE9 の互換モードと非互換モードの両方で正常に実行できます。Google Chrome も正常に実行されます。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。