【问题标题】:AJAX Calling IssueAJAX 调用问题
【发布时间】:2013-02-07 07:40:13
【问题描述】:

我从这里下载了脚本 http://www.webresourcesdepot.com/fly-to-basket-effect-with-jquery/ 它很好,但有些错误,比如 双击 => 3 个项目添加到购物篮 三次点击 => 7 项添加到购物篮 我试图修复它,但仍然无法得到一些东西.. 然后我看到这个链接Disable Link while animated Basket 但我可以理解我将这段代码放在哪里.. 请任何人帮我修复它...

$(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: "inc/functions.php",  
            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: "inc/functions.php",  
        data: { productID: productIDVal, action: "deleteFromBasket"},  
        success: function(theResponse) {

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

        }  
    });  

});

});

【问题讨论】:

  • 请向我们展示您的无效代码。

标签: php jquery


【解决方案1】:

我认为你可能要做的是在点击事件函数的末尾然后取消绑定事件http://api.jquery.com/unbind/ $(this).unbind();

你可以在 ajax 完成后再次绑定它

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-08-28
    • 2010-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多