使用 jquery 添加到购物车

发布于 2025-01-02 02:35:46 字数 3875 浏览 0 评论 0原文

我正在使用这个 jquery 脚本:

$(document).ready(function(){ 

$("#basketItemsWrap li:first").hide();

$(".productPriceWrapRight a img").click(function() {
    var productIDValSplitter    = (this.id).split("_");
    var productIDVal            = productIDValSplitter[1];

    var productX        = $("#productImageWrapID_" + productIDVal).offset().left;
    var productY        = $("#productImageWrapID_" + productIDVal).offset().top;

    if( $("#productID_" + productIDVal).length > 0){
        var basketX         = $("#productID_" + productIDVal).offset().left;
        var basketY         = $("#productID_" + productIDVal).offset().top;         
    } else {
        var basketX         = $("#basketTitleWrap").offset().left;
        var basketY         = $("#basketTitleWrap").offset().top;
    }

    var gotoX           = basketX - productX;
    var gotoY           = basketY - productY;

    var newImageWidth   = $("#productImageWrapID_" + productIDVal).width() / 3;
    var newImageHeight  = $("#productImageWrapID_" + productIDVal).height() / 3;

    $("#productImageWrapID_" + productIDVal + " img")
    .clone()
    .prependTo("#productImageWrapID_" + productIDVal)
    .css({'position' : 'absolute'})
    .animate({opacity: 0.4}, 100 )
    .animate({opacity: 0.1, marginLeft: gotoX, marginTop: gotoY, width: newImageWidth, height: newImageHeight}, 1200, function() {
                                                                                                                                                                                                                                                                                                                $(this).remove();

        $("#notificationsLoader").html('<img src="images/loader.gif">');

        $.ajax({  
            type: "POST",  
            url: "funzioni-carrello.asp",  
            data: { productID: productIDVal, action: "addToBasket"},  
            success: function(theResponse) {

                if( $("#productID_" + productIDVal).length > 0){
                    $("#productID_" + productIDVal).animate({ opacity: 0 }, 500);
                    $("#productID_" + productIDVal).before(theResponse).remove();
                    $("#productID_" + productIDVal).animate({ opacity: 0 }, 500);
                    $("#productID_" + productIDVal).animate({ opacity: 1 }, 500);
                    $("#notificationsLoader").empty();

                } else {
                    $("#basketItemsWrap li:first").before(theResponse);
                    $("#basketItemsWrap li:first").hide();
                    $("#basketItemsWrap li:first").show("slow");  
                    $("#notificationsLoader").empty();          
                }

            }  
        });  

    });

});



$("#basketItemsWrap li img").live("click", function(event) { 
    var productIDValSplitter    = (this.id).split("_");
    var productIDVal            = productIDValSplitter[1];  

    $("#notificationsLoader").html('<img src="images/loader.gif">');

    $.ajax({  
        type: "POST",  
        url: "funzioni-carrello.asp",  
        data: { productID: productIDVal, action: "deleteFromBasket"},  
        success: function(theResponse) {

            $("#productID_" + productIDVal).hide("slow",  function() {$(this).remove();});
            $("#notificationsLoader").empty();

        }  
    });  

});

});

然后我有这样的函数调用:

<div id="basketWrap">
  <div id="basketTitleWrap">
    <h2>Carrello </h2>
  </div>
  <div id="basketItemsWrap">
    <ul>
    <li></li>
    <% 
        'dim getBasket
        getBasket() %>
   </ul>
  </div>
</div> 

我如何修改它,以便如果篮子是空的,它会显示一条消息“您的篮子是空的”。当您添加第一个产品时,该信息会消失;如果您从购物篮中删除所有产品,该信息会重新出现

i'm using this jquery script:

$(document).ready(function(){ 

$("#basketItemsWrap li:first").hide();

$(".productPriceWrapRight a img").click(function() {
    var productIDValSplitter    = (this.id).split("_");
    var productIDVal            = productIDValSplitter[1];

    var productX        = $("#productImageWrapID_" + productIDVal).offset().left;
    var productY        = $("#productImageWrapID_" + productIDVal).offset().top;

    if( $("#productID_" + productIDVal).length > 0){
        var basketX         = $("#productID_" + productIDVal).offset().left;
        var basketY         = $("#productID_" + productIDVal).offset().top;         
    } else {
        var basketX         = $("#basketTitleWrap").offset().left;
        var basketY         = $("#basketTitleWrap").offset().top;
    }

    var gotoX           = basketX - productX;
    var gotoY           = basketY - productY;

    var newImageWidth   = $("#productImageWrapID_" + productIDVal).width() / 3;
    var newImageHeight  = $("#productImageWrapID_" + productIDVal).height() / 3;

    $("#productImageWrapID_" + productIDVal + " img")
    .clone()
    .prependTo("#productImageWrapID_" + productIDVal)
    .css({'position' : 'absolute'})
    .animate({opacity: 0.4}, 100 )
    .animate({opacity: 0.1, marginLeft: gotoX, marginTop: gotoY, width: newImageWidth, height: newImageHeight}, 1200, function() {
                                                                                                                                                                                                                                                                                                                $(this).remove();

        $("#notificationsLoader").html('<img src="images/loader.gif">');

        $.ajax({  
            type: "POST",  
            url: "funzioni-carrello.asp",  
            data: { productID: productIDVal, action: "addToBasket"},  
            success: function(theResponse) {

                if( $("#productID_" + productIDVal).length > 0){
                    $("#productID_" + productIDVal).animate({ opacity: 0 }, 500);
                    $("#productID_" + productIDVal).before(theResponse).remove();
                    $("#productID_" + productIDVal).animate({ opacity: 0 }, 500);
                    $("#productID_" + productIDVal).animate({ opacity: 1 }, 500);
                    $("#notificationsLoader").empty();

                } else {
                    $("#basketItemsWrap li:first").before(theResponse);
                    $("#basketItemsWrap li:first").hide();
                    $("#basketItemsWrap li:first").show("slow");  
                    $("#notificationsLoader").empty();          
                }

            }  
        });  

    });

});



$("#basketItemsWrap li img").live("click", function(event) { 
    var productIDValSplitter    = (this.id).split("_");
    var productIDVal            = productIDValSplitter[1];  

    $("#notificationsLoader").html('<img src="images/loader.gif">');

    $.ajax({  
        type: "POST",  
        url: "funzioni-carrello.asp",  
        data: { productID: productIDVal, action: "deleteFromBasket"},  
        success: function(theResponse) {

            $("#productID_" + productIDVal).hide("slow",  function() {$(this).remove();});
            $("#notificationsLoader").empty();

        }  
    });  

});

});

Then i've the function call like this:

<div id="basketWrap">
  <div id="basketTitleWrap">
    <h2>Carrello </h2>
  </div>
  <div id="basketItemsWrap">
    <ul>
    <li></li>
    <% 
        'dim getBasket
        getBasket() %>
   </ul>
  </div>
</div> 

How can i modify this so that if the basket is empty it displays a message saying “your basket is empty.” This disappears when you add the first product, and would reappear if you removed all products from your basket

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

喵星人汪星人 2025-01-09 02:35:46

从空篮子开始,如下所示:

<div id="basketWrap">
 <div id="empty">Your basket is empty!</div>
 <ul id="itemlist">
  ...

当您的物品列表为空时,您将 display:none; 应用于 #itemlist,如果它已满 display: none;#empty div 和 display:block;#itemlist

当您使用类似 class="hidden" 的内容时,您只需切换类即可。

另外,您可以通过 .html() 操作购物篮的内部 HTML。

编辑:

使用上面给出的标记,添加到您的函数中:

$("#basketItemsWrap li img").live("click", function(event) {

以下代码:(

   if ($("#basketItemsWrap li").length == 1){
       $("#empty").show();
   }

您也可以使用一些转换。)

并在 add-product 函数中添加 ajax 调用的成功部分:

   $("#empty").hide();

start out with you empty basket, something like this:

<div id="basketWrap">
 <div id="empty">Your basket is empty!</div>
 <ul id="itemlist">
  ...

when your itemlist is empty, you apply display:none; to the #itemlist, if its filled display:none; to the #empty div and display:block; for the #itemlist.

When you use something like class="hidden" you simply could toggle the classes.

ALtnernatively, you could manipulate the innerhtml of your basket via .html().

EDIT:

with the markup given above, add to your function:

$("#basketItemsWrap li img").live("click", function(event) {

the following code:

   if ($("#basketItemsWrap li").length == 1){
       $("#empty").show();
   }

(you could use some transition, too.)

And to the success-part of you ajax call in the add-product function you add:

   $("#empty").hide();
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文