Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/75.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以动态数据为参数的敲除onClick_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 以动态数据为参数的敲除onClick

Javascript 以动态数据为参数的敲除onClick,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我有一个addToCart函数,我想利用它,它不在我的viewModel中 在我的视图模型中,我有一个对象{“items”:[{“name”:“siren”,“id”:2,“image”:“s3.amazon.com”}]) 在我的淘汰赛应用程序中: <div id="cart" class="shopify-buy__cart-scroll"> <div class="shopify-buy__cart-items" data-bind="foreac

我有一个addToCart函数,我想利用它,它不在我的viewModel中

在我的视图模型中,我有一个对象
{“items”:[{“name”:“siren”,“id”:2,“image”:“s3.amazon.com”}])

在我的淘汰赛应用程序中:

<div id="cart" class="shopify-buy__cart-scroll">
            <div class="shopify-buy__cart-items" data-bind="foreach: newcart.items">
                <div class="shopify-buy__cart-item">
                    <div data-bind="style: { 'background-image': 'url(' + images + ')'}" class="shopify-buy__cart-item__image" alt="Product" style="background-repeat:no-repeat;background-size: contain;"></div>
                    <span class="shopify-buy__cart-item__title" data-bind="text: name"></span>
                    <span class="shopify-buy__cart-item__price" data-bind="text: price "></span>
                    <div class="shopify-buy__quantity-container">
                        <button class="shopify-buy__btn--seamless shopify-buy__quantity-decrement" type="button">
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M4 7h8v2H4z"></path></svg>
                        </button>
                        <input class="shopify-buy__quantity shopify-buy__cart-item__quantity-input" type="number" min="0" aria-label="Quantity" data-bind="attr: {value: quantity}" style="height: 30px; border:solid 1px #d3dbe2 !important;padding-left:13px;" />
                        <button class="shopify-buy__btn--seamless shopify-buy__quantity-increment" type="button" databind="click: addToCard(id)" >
                            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path d="M12 7H9V4H7v3H4v2h3v3h2V9h3z"></path></svg>
                        </button>

                    </div>
                </div>
            </div> 
            <div class="shopify-buy__cart-bottom">
                <p class="shopify-buy__cart__subtotal__text" >SUBTOTAL</p>
                <p class="shopify-buy__cart__subtotal__price"data-bind="text: total"></p>
                <p class="shopify-buy__cart__notice">Shipping and discount codes are added at checkout.</p>
                <button class="shopify-buy__btn shopify-buy__btn--cart-checkout" type="button">CHECKOUT</button>
            </div>
        </div>

小计

在结账时添加发货和折扣代码

结账
在这行:

我想在函数中添加一些动态参数

<button class="shopify-buy__btn--seamless shopify-buy__quantity-incriment" type="button" databind="attr: {onclick:addToCart( id ) }">

但这不起作用。我如何在不将函数添加到viewmodel的情况下做到这一点。它只是一个对象,我希望保持这种方式


谢谢!

使用html5数据属性如何。将您的淘汰id放入单击函数中

data-bind="attr: {'data-idfromko': id }"
运行下面的代码段

函数模型(){
var self=这个;
this.theArray=ko.array([{
“id”:1,
“foo”:“bar”
}, {
“id”:2,
“foo”:“bar2”
}, {
"id":3,,
“foo”:“bar3”
}, ]);
}
var mymodel=新模型();
$(文档).ready(函数(){
ko.应用绑定(mymodel);
$('.button')。单击(函数(事件){
值=$(this).data(“idfromko”)
警报(值);
});
});

身份证件
福

全局
窗口
对象中的
addToCart
函数在哪里?如果它是全局对象,则可以使用
databind=“click:window.addToCart()”
。但是,我不确定从何处获取值
id
。id值通过一个通过ko.applyBindings(obj)初始化的对象数组传入.需要在foreach中找到它