要素を追加するときに jQuery がバインディング イベントをトリガーできない場合の対処方法

php中世界最好的语言
リリース: 2018-03-15 11:38:39
オリジナル
1703 人が閲覧しました

今回は、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('这里是动态元素添加的事件');
})
ログイン後にコピー

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

$("body").on("click", ".newBtn", function() {
   alert('这里是动态元素添加的事件');
});
//这里的ParentEle是 thisEle的父辈元素或者祖先元素,ParentEle可以是document,也可以是body等。
//注意:如果此时调用的函数是外部定义好的函数,那在调用的时候不要加(),不然会跳过点击事件直接触发函数
ログイン後にコピー
$("body").on("click", ".newBtn",aa );
function aa(){
    alert('这里是动态元素添加的事件');
}
ログイン後にコピー
($(ParentEle).on("click",".thisEle",function(){})OK、問題は解決したので、登り続けます。

この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。

推奨読書:

jquery トリガー関数が a タグをトリガーできない場合はどうすればよいですか?


jquer を使用してテーブルの行と列の交換を実装する方法


jquery フォーム検証の送信


jQuery complex ボックスを選択して値を取得します

以上が要素を追加するときに jQuery がバインディング イベントをトリガーできない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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