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 に答える