0

私のショッピングカートはここにありますhttp://jsfiddle.net/bkw5p/48/

その中で、その商品をショッピングカートに追加するためのボタンをユーザーに表示したいと思います。例:ボタンが商品をクリックすると、カートにドラッグする代わりにカートに追加する必要があります。その商品をカートに追加するためのボタンが必要です

私はそれを試しましたが、私はそれを得ることができません。できるだけ早くこの問題を解決するのを手伝ってください

ありがとう、よろしく

s.varun

4

2 に答える 2

3

@ClarkeyBoy-この段階で、Varunが実際にショップを「機能させる」ことについて質問しているとは思いません。darkskyと同じことを理解している場合は、ドロップ機能と同じことを行うためのボタンを追加するだけです。

私はここで動作するようにフィドルをハックしました:http://jsfiddle.net/joevallender/VTtUr/4/ドラッグ可能なハンドルとしてimgを使用して許可します

編集もっと最新のJSフィドル(以下のコメントによる)http://jsfiddle.net/joevallender/VTtUr/6

easyuiの代わりに通常のjQueryUIを使用することをお勧めします。前者には、ハンドルへのセレクターを除くすべてを許可する「キャンセル」オプションがありますhttp://forum.jquery.com/topic/how-do-i-prevent-dragging-when-a-button-is-clicked-within -ドラッグ可能なコンテナ

少しリファクタリングし、「カートに追加」機能を使用すると、さまざまなイベントを使用できます

function addToCart(source) {
    var name = source.find('p:eq(0)').html();
    var price = source.find('p:eq(1)').html();
    var cartItem = new item(name, parseFloat(price.split('$')[1]));
    var match = ko.utils.arrayFirst(viewModel.cartItems(), function(item) {
        return item.name == name;
    });
    if (match) {
        match.qty(match.qty() + 1);
    } else {
        viewModel.cartItems.push(cartItem);
        var rowCount = document.getElementById("cartcontent1").getElementsByTagName("TR").length;
        document.getElementById("Total").innerHTML = rowCount;
    }
}

だからドロップで使用できます

$('.cart').droppable({
    onDrop: function(e, source) {
        addToCart($(source));
    }
});

をクリックします

$('.item .add-to-cart').click(function() {
    addToCart($(this).parent());
});

あなたがまだテストしていじり回っていて、特定の答えが欲しかったことがわかるので、残りのコードの詳細を取り上げ始めるつもりはありません。

于 2012-08-03T09:22:14.120 に答える
2

これを試して

解決策は以下のとおりです

ブローコードを使用して試してください

<a data-role="link" href="javascript:linkHandler('<%= obj.productname %>', '<%= obj.price %>')" class="get" >Add <a>



function linkHandler(name, price)
{
    alert(name);
    alert(price);
    var name = name;
    var price = price;
    var cartItem = new item(name, parseFloat(price));
            // check duplicate
            var match = ko.utils.arrayFirst(viewModel.cartItems(), function(item){ return item.name == name; });
            if(match){
                match.qty(match.qty() + 1);
            } else {
              viewModel.cartItems.push(cartItem);
var rowCount = document.getElementById("cartcontent1").getElementsByTagName("TR").length;
document.getElementById("Totala").innerHTML = rowCount;
            }
}
于 2012-08-03T10:28:36.353 に答える