1

如果我从 onpageload 调用它,但如果我从按钮单击调用它,我有一个 ajax 查询正在工作。有什么理由吗?

编辑:我已按要求添加了事件,请注意我已经调试过它,它正在进入 AJAX,但只是默默地跳过它。如果我添加一个,它将调用一个失败函数。

function detailsQuery(crn, semester, year, questionId, clickedButton)
{
    $.ajax({
                url: somebigurlwithnocallback (same domain),
                type: "GET",
                dataType: "json",

        success: function (data) {alert(data)}});
}

-

   $(function() {
        $(document).delegate(".button", "click", function(){detailsQuery(CRN,Semester,Year,QuestionID, this);});

    });


window.onload=(function() {detailsQuery(CRN,Semester,Year,QuestionID, this);});
4

3 回答 3

1

您是否尝试检查单击事件是否有效?试试这个代码:

   $(".button").live("click", function(){ 

   function detailsQuery(crn, semester, year, questionId, clickedButton)
   {

   $.ajax({
            url: somebigurlwithnocallback (same domain),
            type: "GET",
            dataType: "json",

    success: function (data) {alert(data)}
          });

              });
                    });
于 2013-07-26T01:27:35.723 回答
0

这似乎是 Google Chrome 的问题。如果 HTML 文件被修改并且只刷新(即使使用 ctrl+f5)Chrome 并不总是正确处理修改后的 AJAX 调用。我无权访问服务器端代码,所以我看不到那里发生了什么,作为一个“GET”并没有太多可能发生。我只能看到它返回“错误”。关闭 chrome 并重新打开可以解决问题。为什么只有在单击按钮时发生 AJAX 时才会发生这种情况,这超出了我的理解。

于 2013-07-26T01:18:50.223 回答
0

这样做:
改变


   $(function() {
        $(document).delegate(".button", "click", function(){detailsQuery(CRN,Semester,Year,QuestionID, this);});

    });


  $(document).ready(function(){
    $(".button").bind({"click": function(){
       function(){detailsQuery(CRN,Semester,Year,QuestionID, this);}
        } 
     });
});

那应该可以解决问题。

希望解释清楚,这会有所帮助。

于 2013-07-26T01:38:40.250 回答