У меня есть это:JQuery на() не работает уже добавили DOM элементы
$(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]
Первый фрагмент кода должен работать для новых и старых элементов. Укажите, пожалуйста, jsfiddle. –
Вы используете его в '$ (document) .ready()'? –
Это должно работать, вы можете попробовать '$ ('body'). On' вместо –