2012-01-19 61 views
1

爲什麼此代碼無法正常工作?爲什麼這個Ajax條件對話框不起作用?

與此同時(試圖使它工作)我已經改變了它的時間,但我找不到解決方案。

任何人有想法?我在控制檯中沒有錯誤。

首先,它檢查是否需要打開一個對話框。

這是工作流程:

如果DialogRequired => Dialog.Click = OK - >執行Ajax調用 如果DialogRequired => Dialog.Click =取消 - >無能爲力 如果對話不要求= >執行一個Ajax調用

$(function() { 
    $("a.orderlink").unbind(); 

    $("a.orderlink").bind("click", function() { 
     var ProductID = $(this).parent().attr("data-productid"); 
     var Ammount = $(this).parent().parent().find("input#ammount").val(); 

     $.ajax({ type: "post", 
      url: $(this).attr("href").replace("AddToCart", "ExistsInCart"), 
      data: { ProductId: $(this).parent().attr("data-productid") }, 
      succes: function (data) { 
       if (data == 1) { 
        $("#ProductExistsInOrder").dialog({ 
         autoOpen: true, 
         height: 170, 
         width: 400, 
         modal: true, 
         buttons: { 
          "OK": function() { 
           /*acties om toe te voegen $.ajax()*/ 
           $.ajax({ type: "post", 
            url: $(this).attr("href"), 
            data: { ProductId: ProductID, Ammount: Ammount }, 
            succes: function() { 
             $("#AddProductNotification").text("U heeft net een product toegevoegd. Herlaad de pagina om uw winkelwagentje te bekijken"); 
            } 
           }); 
           setTimeout("location.reload(true);", 100); 
           $(this).dialog("close"); 
           location.reload(true); 
          // return false; 
          }, 
          "Annuleer": function() { 
           $(this).dialog("close"); 
          // return false; 
          } 
         } 
        }); 
       } else { 
        $.ajax({ type: "post", 
         url: $(this).attr("href"), 
         data: { ProductId: ProductID, Ammount: Ammount }, 
         succes: function() { 
          $("#AddProductNotification").text("U heeft net een product toegevoegd. Herlaad de pagina om uw winkelwagentje te bekijken"); 
         } 
        }); 


       }; 
       // $("#AddProductNotification").text("U heeft net een product toegevoegd. Herlaad de pagina om uw winkelwagentje te bekijken"); 
      }, 
      error: function (XMLHeeptRequest, textStatus, errorThrown) { 
       alert(textStatus); 
       alert(errorThrown); 
      } 
     }); 
     // alert("end"); 
     // AddToCart(this); 
     return false; 
    }); 
    // return false; 
}); 
// ProductId: $(orderlinkObject).parent().attr("data-productid"), Ammount: $(orderlinkObject).parent().parent().find("input#ammount").val() 

這是怎麼一回事呢:

  • 獲取調用(= ok):/ Cart/ExistsInCart帶參數:產品ID並在jSon中返回true
  • 但該對話框未被調用,我似乎無法使用螢火蟲進行更新。
+0

它會拋出任何錯誤嗎? – Abadon

+2

什麼不起作用?和什麼工作? –

+1

請定義「不工作」。代碼應該做什麼,它實際上在做什麼以及控制檯上是否存在任何錯誤。 –

回答

0

看起來你有問題與你的範圍。

你在AJAX成功的匿名函數中有很多$(this).attr("href")。在那些功能this != "a.orderlink"

您將需要在您的點擊處理程序的頂部執行var that = $(this),然後使用that.attr("href")

例如:http://jsbin.com/ivoniv/edit#javascript

+0

更新了我的問題。由於巧合,我也在開始時將href更改爲var。但是這並沒有幫助我。 – NicoJuicy