私はこれを持っています:
$(document).on("click", ".prev", function(){
$(this).closest("div").find(".slider").animate({
"left": "+=450px"
}, 800, "easeInOutBack");
return false;
});
これは、新しい要素がDOMに追加されたときに機能しますが、すでにDOMにある要素に対しては機能しません。
私がこれをするとき:
$(".prev").on("click", function(){
$(this).closest("div").find(".slider").animate({
"left": "+=450px"
}, 800, "easeInOutBack");
return false;
});
DOM内の要素に対しては機能しますが、DOMに追加された新しい要素に対しては機能しません。これを2回記述したり、別の関数を呼び出したりせずに、これを両方で機能させる方法はありますか?
スクリーンショットは次のとおりです。
それで、これはそれがどのように機能するかについてのより詳細な説明です。
<div id="simple-pevs" style="padding-right: 20px;">
<?php require_once __DIR__ . "/data/get/PEVSection.php"; ?>
</div>
次に、誰かが別のセクションを追加したい場合は、追加ボタンをクリックして、次のコードを実行します。
$(".add-another-pev").click(function(){
$.get("./data/get/PEVSection.php?pev="+pevGroup, function(data){
$("#simple-pevs").append(data);
});
pevGroup++;
return false;
});
ご覧のとおり、phpにプリロードされたものと同じものを呼び出しています。新しいものはクリックイベントで機能します(そして他の追加のものは追加されます)が、最初のものは機能しません
@ArunPJohny
console.log($(".prev"));
新しい要素が追加された後:
[a.prev, a.prev, prevObject: b.fn.b.init[1], context: document, selector: ".prev", jquery: "1.9.1", constructor: function…]
0: a.prev
1: a.prev
context: #document
length: 2
prevObject: b.fn.b.init[1]
selector: ".prev"
__proto__: Object[0]