0

ドラッグ&ドロップで商品をカートに入れたい。そのために、jQuery UI Droppable を使用しています。コードは:-

  <script src="http://code.jquery.com/jquery-1.8.3.js"></script>
  <script src="http://code.jquery.com/ui/1.10.0/jquery-ui.js"></script>
  <link rel="stylesheet" href="/resources/demos/style.css" />
  <script>
     $(function() {
$( ".category-products" ).accordion();
$( ".product-name" ).draggable({
  appendTo: "body",
  helper: "clone"
});
$( ".block-content ol" ).droppable({
  activeClass: "ui-state-default",
  hoverClass: "ui-state-hover",
  accept: ":not(.ui-sortable-helper)",
  drop: function( event, ui ) {
    $( this ).find( ".placeholder" ).remove();
    $( "<li></li>" ).text( ui.draggable.text() ).appendTo( this );
  }
}).sortable({
  items: "li:not(.placeholder)",
  sort: function() {
    // gets added unintentionally by droppable interacting with sortable
    // using connectWithSortable fixes this, but doesn't allow you to customize active/hoverClass options
    $( this ).removeClass( "ui-state-default" );
  }
});

});

このコードを使用すると、製品名がカートにドロップ可能になりますが、カートには追加されません。商品名をカートに入れようとしても入れません。私を助けてください。

4

2 に答える 2

1

製品にカスタムオプションがないと仮定します。

製品リスト内の非表示フィールドとして製品 ID を保存します (ドラッグ可能)

      <li>Lolcat Shirt
          <input type='hidden' value='2' name='pid' />
      </li>

それからする

  drop: function( event, ui ) {
    $( this )
      .addClass( "ui-state-highlight" )
      .find( "> p" )
        .html( "Dropped!" );

    add product to cart
    p_id = ui.draggable.find('input[name="pid"]').val();
    $.get("/path/to/app/checkout/cart/add?qty=1&product=" + p_id)

    return false;
  }

http://jsfiddle.net/C2Ufk/を参照してください

アイテムを削除するには、同様のことを行う必要があります

于 2013-02-06T12:03:35.727 に答える