ホームページ  >  記事  >  ウェブフロントエンド  >  jqueryで存在しない要素にイベントを追加する方法

jqueryで存在しない要素にイベントを追加する方法

coldplay.xixi
coldplay.xixiオリジナル
2020-12-25 09:56:152600ブラウズ

存在しない要素にイベントを追加する Jquery メソッド: 1. [jquery1.9] バージョンより前では、live メソッドを使用します。コードは [$("#id").live("click", function ( )]; 2. [jquery1.9] バージョン以降は On メソッドを使用します

jqueryで存在しない要素にイベントを追加する方法

このチュートリアルの動作環境: Windows7 システム、jquery3 .2.1&&jquery1.9 バージョン、DELL G3 コンピューター

推奨: jquery ビデオ チュートリアル

jquery存在しない要素を追加するには イベント メソッド:

質問:

jquery で要素にイベントを追加するのは非常に簡単です (クリック イベントの追加など)。 .

$(选择器).click(function(){ 
  );

ただし、ajax ページングは​​プロジェクト内で行われており、最初のページは直接読み込まれます。上記の方法であれば全く問題ありませんが、ajax ページングを使用すると他のページの内容が読み込まれてしまいます。後から innerHTML で追加され、追加された要素 関連するイベントが存在しない

実は理由も分かりやすいのですが、最初にイベントを追加した時点では、他のページの要素は存在しませんでした。後で innerHTML を通じて追加すると、タグは存在しましたが、対応するイベントがありません。

それで、上記の概要を解決するにはどうすればよいでしょうか? 存在しない要素にイベントを追加します

解決策:

ライブ メソッドを使用する: イベントを存在しない要素にバインドする

$("#id").live("click", function () { 
            alert("ok"); 
     });

ただし、jquery バージョン 1.9 以降、ライブ メソッドは削除されました。 replace live?

Answer 、つまり on メソッドを使用する

$("#id").on("click",function(){ 
           alert("ok"); 
   });

ただし、 on メソッドを使用した後、まだ無効であることがわかります。構文には問題ありません。では、なぜ機能しないのでしょうか? 答えは、このように書くべきではないということです。存在しない要素にイベントを追加する場合は、

次のような書き方をします。

$(document).on("click",'#id', 
     function(){ 
        alert("ok"); 
    });

上記の記述方法を使用すると、問題は解決します。

関連する無料学習の推奨事項: javascript# ##(ビデオ)#########

以上がjqueryで存在しない要素にイベントを追加する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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