我有一个ajax查询,如果我从onpageload调用它,但是如果我从按钮点击调用它,则没有。有什么理由吗?
编辑:我已根据要求添加了事件,请注意我已经调试了这个并且它正在进入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);});
答案 0 :(得分: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)}
});
});
});
答案 1 :(得分:0)
这似乎是Google Chrome的一个问题。如果修改HTML文件并仅刷新(即使使用ctrl + f5),Chrome也无法始终正确处理修改后的AJAX调用。我无法访问服务器端代码,所以我无法看到那里发生了什么,因为'GET'不是很多可以继续。我只能看到它返回'错误'。关闭镀铬并重新打开可以解决问题。为什么只有在点击按钮时发生AJAX才会发生。
答案 2 :(得分: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);}
}
});
});
那应该解决这个问题。
希望解释清楚,这有帮助。