Циклическая работа

Рейтинг: 0Ответов: 1Опубликовано: 23.03.2015

Доброго времени суток.

Есть код:

jQuery('.one').on('click', '.del',function(ev){
    ev.preventDefault();
    var delId = jQuery(this).siblings('.theId').val();/* получет id*/
    var sesID = jQuery('#sessionId').val();/*получает дентификатор пользователя*/
        jQuery.post("/script/script.php",
            {id:delId,
            session:sesID},
        function(dataS) {
            jQuery("#theDiv").html(dataS) ;
            jQuery('.one').on('click', '.del',function(e){
                var thisis= jQuery(this);
                delCart(e,thisis,sesID);});
    });

Суть в том, что при отработке ajax заново идет построение dom элиментов. А ссылка с классом del находится в заменяемом скрипте, участке, к примеру:

<div class="one">1<a href="#" class="del">x</a></div>
<div class="one">2<a href="#" class="del">x</a></div>
<div class="one">3<a href="#" class="del">x</a></div>
<div class="one">4<a href="#" class="del">x</a></div>
<div class="one">5<a href="#" class="del">x</a></div>
<div class="one">6<a href="#" class="del">x</a></div>

При работе скрипта каждый див удаляется (через взаимодествие с базой данных), здесь я поставил двойную отработку кода. Но, как вы понимаете, мне надо, чтобы код отрабатывал такое количество раз, сколько пользователь будет нажимать на ссылку с классом del. Не подскажите, как это сделать?

Ответы

▲ 1Принят
jQuery('body').on('click', '.del',function(ev){
    ...
    jQuery.post("/script/script.php",
        {id:delId, session:sesID},
    function(dataS) {
        jQuery("#theDiv").html(dataS) ;
});

Правка:

Ещё раз, с пояснением.

Есть родительский элемент, вешаем на него обработчик клика на любую сабноду с классом one.

При изменении содержимого родительского элемента обработчик никуда не делся и предсказуемо сработает при следующем нажатии.

<div class="theDiv">
   <div class="one">1<a href="#" class="del">x</a></div>
   <div class="one">2<a href="#" class="del">x</a></div>
</div>

$('.theDiv').on('click', '.del',function(ev){
    var delId = $(this).siblings('.theId').val();
    var sesID = $('#sessionId').val();
    $.post("/script/script.php", {id:delId, session:sesID})
       .done(function(dataS) {
            $(".theDiv").html(dataS) ;
       })
       .fail(function(){ ... });
});