在ajax成功回调上调用一个函数

时间:2015-09-29 17:25:59

标签: javascript jquery ajax

以下是我的剧本

function allresultscount(thisurl) {
$.ajax({
type: "GET",
dataType: "xml",
url: thisurl,
success: function(data) {
    if ($(data).find('atom\\:entry, entry').length !== 0) {
        $(data).find('atom\\:entry, entry').each(function() {
            countall++;
        });
    }
    $("#resultscount").text(countall);
    var pagecount = countall / 2;
    for (var i = 1; i <= pagecount; i++) {
        $('<a class="page_link" onclick="formurl(' + i + ')" longdesc="0" style="display: inline-block;">' + i + '</a>').insertBefore('.next_link');
    }
}
});
}
function formurl(i) {
   alert(i);
}

这里试图在ajax成功回调中调用函数formurl()。这两个功能都已准备就绪。

但是我得到了formurl()未定义的错误。我怎么这样做?

1 个答案:

答案 0 :(得分:-1)

你可以但是必须在ready()方法的范围内调用它们,否则当ready()方法退出时它们会失去范围。

例如,以下代码可以使用:

$(document).ready(function(){
  function formurl()
  {
    alert('Bar');
  }

  formurl(); // still in the scope of the ready method
});

ajax完成后,您的新元素将在DOM中呈现。现在你在ready()事件之外。在您的情况下,您可以在ready()事件

之外定义您的函数
function formurl()
      {
        alert('Bar');
      }
$(document).ready(function(){

     // fire ajax here
    });