0

jquery 1.7 から 1.10 に移行しようとしていますが、ライブ機能が機能しなくなりました。

$("#detail_content").on("click", ".close", function (a) {  // is ignored
//$("#detail_content .close").live("click", function (a) { //works fine with migrate
  console.log("click");
});

div.detail_content は後で ajax 経由で読み込まれますが、.live から .on に変更すると閉じるボタンが機能しなくなります

代表が欠けていると思います。

何か案が?

4

4 に答える 4

4

Looks like #detail_content also is an dynamic one, then try

$(document).on("click", "#detail_content .close", function (a) {  // is ignored
//$("#detail_content .close").live("click", function (a) { //works fine with migrate
  console.log("click");
});
于 2013-06-06T11:40:55.283 に答える
2

最も近い静的親要素 (またはbody最後)を使用する必要があります。

$("body").on("click", "#detail_content .close", function() { ... });

したがって、次のようなマークアップがある場合:

<body>
    ...
    <div id="container">
        ...
        <div id="detail_content"><button class="close">Close</button></div>
    </div>
</body>

#containerAjax 呼び出し後に置き換えられない場合は、次を使用することをお勧めします。

$("#container").on("click", "#detail_content .close", function() { ... });
于 2013-06-06T11:40:57.990 に答える
1

この.live()メソッドは、jQuery 1.10 以降では非推奨です。メソッドを使用.on()して、イベント ハンドラーをアタッチします。

したがって、.live() の代わりにこのコードを使用できます。

 $(document).on('click', '#detail_content .close', function(){
      //your Code
 });

この回答はあなたにとって役立つと思います。このページでは、廃止されたすべての方法を確認できます。1.7 から 1.10 に移行したい人にとっては便利です。

于 2013-07-31T05:39:26.863 に答える
0

VisioN、以下をそのまま使うのは同じではないですか?

$(document).ready(function(){
    $(".close").click(function(){
        console.log("clicked");
    }
});

上記のコードについて、何らかの形で遅くなったり、効率が悪くなったりするものはありますか?

于 2013-06-11T16:33:21.700 に答える