私のショッピングカートはここにありますhttp://jsfiddle.net/bkw5p/48/
その中で、その商品をショッピングカートに追加するためのボタンをユーザーに表示したいと思います。例:ボタンが商品をクリックすると、カートにドラッグする代わりにカートに追加する必要があります。その商品をカートに追加するためのボタンが必要です
私はそれを試しましたが、私はそれを得ることができません。できるだけ早くこの問題を解決するのを手伝ってください
ありがとう、よろしく
s.varun
私のショッピングカートはここにありますhttp://jsfiddle.net/bkw5p/48/
その中で、その商品をショッピングカートに追加するためのボタンをユーザーに表示したいと思います。例:ボタンが商品をクリックすると、カートにドラッグする代わりにカートに追加する必要があります。その商品をカートに追加するためのボタンが必要です
私はそれを試しましたが、私はそれを得ることができません。できるだけ早くこの問題を解決するのを手伝ってください
ありがとう、よろしく
s.varun
@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());
});
あなたがまだテストしていじり回っていて、特定の答えが欲しかったことがわかるので、残りのコードの詳細を取り上げ始めるつもりはありません。
これを試して
解決策は以下のとおりです
ブローコードを使用して試してください
<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;
}
}