jQueryを使用して動的に追加された要素がバインディングイベントをトリガーできない問題を解決する方法

亚连
リリース: 2018-06-14 11:38:50
オリジナル
3360 人が閲覧しました

この記事では、jQuery で動的に追加された要素がバインド イベントをトリガーできない問題の解決策を主に紹介し、動的に追加された要素がイベントをバインドできない原因と関連する解決策を例の形式で分析します。この記事では、jQuery が動的に追加した要素がバインディング イベントをトリガーできないという問題の解決策の例について説明しています。参考までに皆さんと共有してください。詳細は次のとおりです。

私は最近問題に遭遇しました。つまり、jquery を使用して要素を動的に追加した後、動的に追加された要素がイベントをトリガーできないことがわかりました。その後、インターネットでいくつかの情報を確認したところ、次のように処理する必要があることがわかりました:

まず、エラー コードについて話しましょう:

<!DOCTYPE html>
<html>
<head lang="en">
  <meta charset="UTF-8">
  <title></title>
  <link rel="stylesheet" href="http://cdn.bootcss.com/bootstrap/3.3.0/css/bootstrap.min.css" rel="external nofollow" >
  <script src="//cdn.bootcss.com/jquery/1.8.3/jquery.min.js"></script>
  <script>
    $(document).ready(function(){
//这里是动态添加元素
      $(".add").click(function(){
        var btn = $("<button class=&#39;newBtn btn btn-default&#39;>新按钮</button>");
        $("body").append(btn);
      })<br><br>//这里是为添加的元素添加事件
      $(".newBtn").click(function(){
        alert("这里是新添加的元素触发的事件");
      })
    })
  </script>
</head>
<body>
<button class=" add btn btn-default">添加按钮</button>
</body>
</html>
ログイン後にコピー

これが私の解決策です

方法 1: ライブ イベントをバインドします (ライブ イベントはjquery1.9 でのみ利用可能。以下のバージョンでのみサポートされており、それ以降のバージョンではサポートされていません)。

$(".newBtn").live("click",function(){
///jquery 1.9(不包括1.9)以下可以
  alert(&#39;这里是动态元素添加的事件&#39;);
})
ログイン後にコピー

方法 2: on() イベント バインディングを使用する

$("body").on("click", ".newBtn", function() {
   alert(&#39;这里是动态元素添加的事件&#39;);
});
//这里的ParentEle是 thisEle的父辈元素或者祖先元素,ParentEle可以是document,也可以是body等。
//注意:如果此时调用的函数是外部定义好的函数,那在调用的时候不要加(),不然会跳过点击事件直接触发函数
ログイン後にコピー
$("body").on("click", ".newBtn",aa );
function aa(){
    alert(&#39;这里是动态元素添加的事件&#39;);
}
ログイン後にコピー
($(ParentEle).on("click",".thisEle",function(){})上記は、今後皆さんのお役に立てれば幸いです。

関連記事:

jQuery+CSSを使用してテーブルを実装する方法

httpモジュールを使用してnodejs経由でリクエストを送信する(詳細なチュートリアル)

Angularを使用して国際化を実装する方法(詳細なチュートリアル)

以上がjQueryを使用して動的に追加された要素がバインディングイベントをトリガーできない問題を解決する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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