0

我正在尝试编写实时更新购物车。我试图在另一个函数中运行一个函数,但只能让它在重新加载时工作。我的方法有什么问题?

编辑:我现在已经从 checkKart 编辑到 checkKart();

$(function checkKart() {
        $.ajax({
            type: "GET",

            url: "checkCart.php",
            success: function(html) {

                $("#handlevogn").html(html);
           }

        });
});

function addToCart(product_name, design_name, price, qty) {
     $.ajax({
             type: "GET",
             url: 'test.php',
             data: {qty: qty, product_name: product_name, design_name: design_name, price: price},
             success: function(data) {
                  alert("Varen er i handlekurven");
                  checkKart();
             }
           });
    return "Varen er i handlekurven";

}
4

2 回答 2

1
function checkKart() {
    $.ajax({
        type: "GET",
        url: "checkCart.php",
        success: function(html) {
            $("#handlevogn").html(html);
        }
    });
};

function addToCart(product_name, design_name, price, qty) {
    $.ajax({
        type: "GET",
        url: 'test.php',
        data: {qty: qty, product_name: product_name, design_name: design_name, price: price},
        success: function(data) {
            alert("Varen er i handlekurven");
            checkKart();
         }
    });

    return "Varen er i handlekurven";
}

那应该行得通。

不知道为什么你的第一个函数包含在 $() 中。如果你想写一个 jQuery 插件,正确的语法是这样的:

(function( $ ) {
  $.fn.myPlugin = function() {

    // Do your awesome plugin stuff here

  };
})( jQuery );

你可以在这里阅读更多关于http://docs.jquery.com/Plugins/Authoring

于 2013-02-01T21:42:27.117 回答
1

你的错误控制台应该告诉你这checkKart是一个未定义的函数,原因是这样写的:

$(function checkKart() {
    $.ajax({
        ...
    });
});

您创建的是“命名函数表达式”,其中名称仅该函数中可见,并且名称不会导出到封闭范围。

如果您在没有$(...)包装器的情况下正常定义函数,那么一切都应该正常工作。

于 2013-02-01T21:47:54.793 回答