我有这个:
$(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 中的新元素。有没有办法让我不必写两次或调用另一个函数就可以让这两者都起作用?
这是一个屏幕截图:
因此,这是对其工作原理的更深入描述。
<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.ini 中的同一个。新的(以及添加的任何其他附加的)与 click 事件一起工作,而第一个没有
@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]