Jquery 将产品添加到购物车的按钮

Jquery 将产品添加到购物车的按钮,jquery,knockout.js,Jquery,Knockout.js,我的购物车在这里 在这一点上,我想向用户显示一个按钮,用于将产品添加到购物车中。 当一个按钮被点击在一个产品上时,它应该被添加到购物车而不是拖到购物车上。我需要一个按钮来将该产品添加到购物车上 我试过了,但没能得到。 请尽快帮助解决这个问题 谢谢和问候 s、 瓦伦@ClarkeyBoy-我不认为瓦伦在这个阶段要求让商店真正“运转”。如果我已经理解了与darksky相同的功能,那么它只是添加了一个按钮来执行与drop功能相同的操作 我已经破解了小提琴在这里工作:使用img作为可拖动的手柄来允许 编

我的购物车在这里

在这一点上,我想向用户显示一个按钮,用于将产品添加到购物车中。 当一个按钮被点击在一个产品上时,它应该被添加到购物车而不是拖到购物车上。我需要一个按钮来将该产品添加到购物车上

我试过了,但没能得到。 请尽快帮助解决这个问题

谢谢和问候


s、 瓦伦

@ClarkeyBoy-我不认为瓦伦在这个阶段要求让商店真正“运转”。如果我已经理解了与darksky相同的功能,那么它只是添加了一个按钮来执行与drop功能相同的操作

我已经破解了小提琴在这里工作:使用img作为可拖动的手柄来允许

编辑更多最新JS小提琴(根据以下评论)

我建议使用普通的jqueryui而不是easyui。前者有一个“取消”选项,允许除选择器之外的所有内容都可以访问句柄

稍微重构一下,“添加到购物车”功能就可以在不同的事件中使用

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());
});

我不打算开始挑选代码其余部分的细节,因为我可以看到您仍在测试和胡闹,只是想得到一个具体的答案。

@ClarkeyBoy-我认为Varun在这个阶段并不是在问如何让商店真正“工作”。如果我已经理解了与darksky相同的功能,那么它只是添加了一个按钮来执行与drop功能相同的操作

我已经破解了小提琴在这里工作:使用img作为可拖动的手柄来允许

编辑更多最新JS小提琴(根据以下评论)

我建议使用普通的jqueryui而不是easyui。前者有一个“取消”选项,允许除选择器之外的所有内容都可以访问句柄

稍微重构一下,“添加到购物车”功能就可以在不同的事件中使用

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());
});
我不打算开始挑选代码其余部分的细节,因为我可以看到您仍在测试和胡闹,只是想要一个具体的答案。

试试这个

解决方案如下

使用blow代码并尝试它

<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;
            }
}
添加
函数linkHandler(名称、价格)
{
警报(名称);
警报(价格);
变量名称=名称;
var价格=价格;
var cartItem=新项目(名称、价格);
//核对副本
var match=ko.utils.arrayFirst(viewModel.cartItems(),函数(item){return item.name==name;});
如果(匹配){
匹配数量(匹配数量()+1);
}否则{
viewModel.cartItems.push(cartItem);
var rowCount=document.getElementById(“cartcontent1”).getElementsByTagName(“TR”).length;
document.getElementById(“Totala”).innerHTML=rowCount;
}
}
试试这个

解决方案如下

使用blow代码并尝试它

<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;
            }
}
添加
函数linkHandler(名称、价格)
{
警报(名称);
警报(价格);
变量名称=名称;
var价格=价格;
var cartItem=新项目(名称、价格);
//核对副本
var match=ko.utils.arrayFirst(viewModel.cartItems(),函数(item){return item.name==name;});
如果(匹配){
匹配数量(匹配数量()+1);
}否则{
viewModel.cartItems.push(cartItem);
var rowCount=document.getElementById(“cartcontent1”).getElementsByTagName(“TR”).length;
document.getElementById(“Totala”).innerHTML=rowCount;
}
}

提示:按钮单击的代码与代码中的
onDrop
处理程序几乎相同。提示:按钮单击的代码与代码中的
onDrop
处理程序几乎相同。在我的示例中,拖放和按钮都可以工作。在示例中尝试一下,您必须通过拖动来允许按钮按下工作(因为使用qeasyui)啊,可能(取决于您的浏览器)是因为图像已损坏,因此句柄已消失-我将更新…看看这个(拖动图像,我们可以稍后将“句柄”配置为更大的)在我的示例中,拖放和按钮都起作用。在示例中尝试一下,您必须通过拖动来允许按钮按下工作(因为使用qeasyui)啊,可能(取决于您的浏览器)是因为图像已损坏,因此句柄已消失-我将更新…看看这个(拖动图像,我们可以稍后将“句柄”配置为更大的)