0

これを行うための最良の方法はわかりません。私の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を操作」しています。これまでのところ、ドロップされた要素IDを「取得」できる唯一の方法は、バスケットをこのようにソート可能なものとして設定することです。

$j('#basket').sortable({ 

});

そうすることで、「結果」アラートを使用して、配列されたIDを確認できます。これは機能しますが、正しくないことは確かです。動作しないのは、次のようにバスケットからドロップされたアイテムを削除した場合です。

$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で「非常にシンプル」なので、「シンプル」にしてください。

4

1 に答える 1

1

あなたは

$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.

デモ

于 2010-06-29T07:10:41.967 に答える