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 関数を実装するにはどうすればよいでしょうか。

もう1つ質問です。.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 に答える