JQuery перетаскиваемый массив обновлений после удаления - PullRequest
0 голосов
/ 29 июня 2010

Я не уверен, что лучший способ сделать это, я уверен, что мой JQuery «неуклюжий», если не сказать больше, но он выполняет первую часть работы.

Я тащу"продукты" в корзину, как это:

$j('#basket').droppable({ 
accept: '.productsimg',
drop: function(ev, ui) { 
        $j(this).append(ui.draggable.clone());
        $j("#basket .deleteit").show();
        $j('#basket .instructions').hide();
        $j("#basket .quantityIndicator").show();
        $j("#basket").css("background-image","none");
        $j('#basket .productsimg').removeClass('productsimg');
        $j('#basket .attachment-100x100').css('width','50px');
        $j('#basket .attachment-100x100').css('height','50px');
        $j("#basket .hiddentitle").show();  
        var result = $j('#basket').sortable('toArray');

        alert(result);
        $j('#total').load('/wordpress/wp-content/plugins/shop/test.php');
      } 
});

Да, я также "манипулирую CSS" после сброса.Пока что единственный способ, которым я могу «получить» идентификатор отброшенных элементов, - это установить сортируемую корзину таким образом, как этоработает, но я уверен, что это не правильно.Что не работает, так это когда я удаляю упавший элемент из корзины следующим образом:

$j("#basket .deleteit").live('click',function(){
    $j(this).parent().remove();
    var test = $j('#basket').sortable('toArray');
    alert(test);
    var num = $j('#basket .deleteit').length
    if (num == 0) {
       $j('#basket .instructions').show();
       $j("#basket").css("background-image","url(/wordpress/wp-content/plugins/shop/img/cart.png)");
    }
});

То, что я на самом деле хочу, это обновить массив корзины.Но это не так.Любые подсказки, пожалуйста.Благодарю.- О, и, пожалуйста, постарайтесь, чтобы это было "просто", поскольку я "очень прост" в JQuery

1 Ответ

1 голос
/ 29 июня 2010

твой

$j("#basket .deleteit").live('click',function(){ 
     $j(this).parent().remove(); 
     //....some codes..... 
 });

Вы пробовали,

$j("#basket .deleteit").live('click',function(){ 
    //.... ...some codes... .... 
    $j(this).parent().remove(); 
});

редактировать: на основе комментария вашего сообщения

var result = $("ul#someId li").map(function(){
   return this.id;
}).get();
// result is now an array containing the id's of li.

демо

...