0

我已经阅读了 jQuery API,但我仍然不清楚。这是我拥有的代码示例:

        $.ajax({
            url: href,
            type: 'GET'
        })
        .success(function (content) {
            $('#content')
                .html("<div class='block-border'>" + content + "</div>")
                .applyTemplateSetup()
                .buildTableOfContent();
            if ($('#cityLegend-1').length) {
                $('#cityLegend-1').html("Question " + html);
            }
            $('#article').css('visibility', 'visible');
            var editHref = "/Admin/Contents/Edit?pk=0003000&rk=" + href.substring(2,5);
            $('#editContent').attr('data-href', editHref);
        })
        .fail(function (ajaxContext) {
            ajaxOnFailure(ajaxContext)
        });

必须为此使用 jQuery .load,因为我的模板已经被编码以产生一些效果并调用 jQuery .load()。但是,如果存在 .success 或 .fail 以及如何实现 .done 函数,我怎样才能让我的回调做不同的事情,就像我在这里使用的函数一样。

还有一个问题。如果我能够使用 .load ,那么如果我的内容包含 HTML 标记,这将是一个问题。这很有可能,我在某些地方读到这可能是一个问题。

4

3 回答 3

4

像这样

$.ajax({
  url: 'ajax/test.html',
  success: function(data) {
    $('.result').html(data);
    alert('Load was performed.');
  },
  error: function(data){
    //error
  },
 complete: function(data){
   //complete
 }
});
于 2012-09-11T17:30:05.077 回答
1

这可能会有所帮助。

$("#content").load(href, function(response, status, xhr){
  if(status == "error") {
    ajaxOnFailure(response);
  } else {
    ajaxOnSuccess(response);
  }
});

(顺便说一下,在.load()的文档中有一个例子。)

于 2012-09-11T18:02:54.667 回答
0

您可以将其用于错误处理

$(document).ready(function() {
 $('#races a').click(function () {
  $('#results').load('Racing/' + $(this).attr('href') + ' #wrap', "", function(responseText, textStatus, XMLHttpRequest) {
   switch (XMLHttpRequest.status) {
    case 200: break;
    case 404:
     $('#results').html('<p>Looks like the results have not been uploaded to the server yet. Please check back later.</p>');
     break;
    default:
     $('#results').html('<p>' + XMLHttpRequest.status + ': ' + XMLHttpRequest.statusText + '. Please contact the club and let them know.</p>');
     break;
   }
  });
  return false;
 });
});
于 2012-09-17T01:54:34.423 回答