簡體   English   中英

jquery ajax成功回調難度

[英]jquery ajax success callback difficulty

我有以下代碼:

@{
    ViewBag.Title = "Index";
}
<h2>
    Index</h2>
<div data-role="page">
    <div data-role="header">
        ...</div>
    <div data-role="content">
        <a id="btnShowCustomers" data-role="button" href="#secondDiv"></a>
    </div>
    <div data-role="footer">
        ...</div>
</div>
<div id="secondDiv" data-role="page">
    <div id="list" data-role="content">
    </div>
</div>
<div id="customerDetailsDiv" data-role="page">
    <div data-role="content">
    </div>
</div>
<script type="text/javascript">
    $(document).ready(function (event) {
        $('#btnShowCustomers').bind('vclick', function (event) {
            GetCustomers();
        });
    });

    function GetCustomers() {
        var webMethod = "Home/GetCustomers";
        $.ajax({
            type: "POST",
            contentType: "application/json; charset=utf-8",
            url: webMethod,
            data: "{}",
            dataType: "json",
            success: function (dataObj) {
                $(dataObj).each(function () {
                    if ($(this).CanConsume) {
                        alert('can consume');
                        $('<a href="#" data-date="' + $(this).DateActivated + '" data-id="' + $(this).ID + '">' + $(this).Name + '</a>').appendTo('#list');
                    }
                })
            }
        });
    }
</script>

從服務器端,我返回一個Customer對象列表。 客戶具有以下特性;

  • ID
  • CanConsume(布爾)
  • 名稱
  • DateActivated

我想迭代返回的結果集並構建錨元素並將它們附加到div命名列表中。 你知道為什么這不起作用嗎? 我沒有javascript錯誤。

dataObj是普通JavaScript(JSON)對象的常規列表。 不要使用jQuery迭代它,因為jQuery.each(...)迭代DOM元素。

你試一試

   ...
   success: function(dataObj){
      for(var i=0; i < dataObj.length; i++){
         var obj = dataObj[i];
          if (obj.CanConsume) {
              alert('can consume');
              ...
          }
      }
   }

這應該工作。

否則,請嘗試使用Firebug或Chrome開發工具來檢查響應或在成功回調中設置斷點。 這應該給你足夠的信息來解決問題。

不幸的是,jQuery殺死了錯誤。

如果這不起作用,請發布一些JSON。

該死的,再次:

$.each(dataObj, function (index, element) {
    if (element.CanConsume) {
           alert('can consume');
           $('<a href="#" data-date="' + element.DateActivated + '" data-id="' + element.ID + '">' + element.Name + '</a>').appendTo('#list');
       }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM