0

シンプルカートjsを使用しています。商品一つだけの本当にシンプルなお店です。誰かがカートに追加ボタンをクリックしたときに、自動的にカート ページにリダイレクトしたいと考えています。

製品を追加するためのコード:

<div class="simpleCart_shelfItem">
<h2 class="item_name"> Awesome T-shirt </h2>
<p>  <input type="text" value="1" class="item_Quantity"><br>
<span class="item_price">$35.99</span><br>
<a class="item_add" href="javascript:;"> Add to Cart </a></p>
</div>

simpleCart.js のリスナー:

/* here is our shelfItem add to cart button listener */
                , { selector: 'shelfItem .item_add'
                    , event: 'click'
                    , callback: function () {
                        var $button = simpleCart.$(this),
                            fields = {};

                        $button.closest("." + namespace + "_shelfItem").descendants().each(function (x,item) {
                            var $item = simpleCart.$(item);

                            // check to see if the class matches the item_[fieldname] pattern
                            if ($item.attr("class") &&
                                $item.attr("class").match(/item_.+/) &&
                                !$item.attr('class').match(/item_add/)) {

                                // find the class name
                                simpleCart.each($item.attr('class').split(' '), function (klass) {
                                    var attr,
                                        val,
                                        type;

                                    // get the value or text depending on the tagName
                                    if (klass.match(/item_.+/)) {
                                        attr = klass.split("_")[1];
                                        val = "";
                                        switch($item.tag().toLowerCase()) {
                                            case "input":
                                            case "textarea":
                                            case "select":
                                                type = $item.attr("type");
                                                if (!type || ((type.toLowerCase() === "checkbox" || type.toLowerCase() === "radio") && $item.attr("checked")) || type.toLowerCase() === "text") {
                                                    val = $item.val();
                                                }               
                                                break;
                                            case "img":
                                                val = $item.attr('src');
                                                break;
                                            default:
                                                val = $item.text();
                                                break;
                                        }

                                        if (val !== null && val !== "") {
                                            fields[attr.toLowerCase()] = fields[attr.toLowerCase()] ? fields[attr.toLowerCase()] + ", " +  val : val;
                                        }
                                    }
                                });
                            }
                        });

                        // add the item
                        simpleCart.add(fields);
                    }
                }
            ]);
        });

私が読んだことから、 href="javascript:;" を使用するのは悪い習慣です アイテムをカートに追加してからカートページに移動するクリック機能に変更するか、リダイレクトを追加することをお勧めしますか? どうすればいいですか?ありがとう

4

1 に答える 1

1

simplecart APiがどのように機能するかはわかりませんが、次のように試すことができます。

// add the item
simpleCart.add(fields);
window.location='/cart/'; // change to your cart route

カートがサーバーCookieに保存する場合は、これをコールバックに入れる必要がある場合があります。

于 2012-09-03T17:08:20.570 に答える