两个Ajax onclick事件
Two Ajax onclick events
所以我不得不修改一些旧的现有代码,并添加另一个ajax事件到onclick
所以它有onclick="function1(); function2();"
这在我们的测试环境中工作得很好,因为它是一个缓慢的VM,但在我们的活动环境中,它会导致一些问题,因为function1()
必须在function2()
被调用之前完成更新一些记录。
是否有一个很好的方法来解决这个问题,而不修改function2()
的js,因为这是由其他事件调用的现有代码。
谢谢
从function1返回时调用function2:
function function1() {
$.ajax({
type: "POST",
url: "urlGoesHere",
data: " ",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function (result) {
//call function2
},
error:
});
}
您需要使用ajax方法的always callback,查看$.ajax()方法的always callback http://api.jquery.com/jquery.ajax/.
给opiton的回调在ajax请求完成时执行。这里有一个建议:
function function1() {
var jqxhr = $.ajax({
type: "POST",
url: "/some/page",
data: " ",
dataType: "dataType",
}).always(function (jqXHR, textStatus) {
if (textStatus == 'success') {
function2();
} else {
errorCallback(jqXHR);
}
});
}
我假设你使用原型JS和AJAX,因为你的标签。你应该使用回调函数:
function function1(callback) {
new Ajax.Request('http://www.google.nl', {
onSuccess: function(response) {
callback();
}
});
}
function function2(callback) {
new Ajax.Request('http://www.google.nl', {
onSuccess: function(response) {
callback();
}
});
}
function both() {
function1(function() {
function2();
});
}
然后在html元素上使用onclick="both();"
。
示例:http://jsfiddle.net/EzU4p/
Ajax有async
属性,可以设置为false。这样,您可以等待该函数完成调用并设置一些值。它实际上违背了AJAX的目的,但它可能会节省您的时间。
我最近有类似的问题,不知何故,在完成function1后调用function2工作得很好。我最初试图在function1成功时调用function2,但没有成功。
$.ajax({
type: "POST",
url: "default.aspx/function1",
data: "",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false, // to make function Sync
success: function (msg) {
var $data = msg.d;
if ($data == 1)
{
isSuccess = 'yes'
}
},
error: function () {
alert('Error in function1');
}
});
// END OF AJAX
if (isSuccess == 'yes') {
// Call function 2
}
相关文章:
- 如何在执行此特定onclick事件时执行JavaScript函数
- 如何调用“;链接_;在onclick事件上使用Javascript
- 如何使用jquery迭代具有相同属性的html元素并查找onclick事件
- 选择onclick事件jquery
- 如何刷新列表框内容onclick或blur事件
- 执行php函数的onclick事件的其他替代方案
- 动态创建OnClick事件Javascript
- onClick事件未触发reactjs
- 使用java脚本更改onClick事件中菜单选项卡的颜色
- 如何使用OnClick事件通过参数调用来调用PHP函数
- 第二个事件[onClick]不起作用
- 复选框事件onclick不起作用
- 如何在jQuery中为通知添加事件onClick
- JS函数不响应事件onclick
- 使用事件onclick访问if语句Javascript中变量的值
- 如何在事件onclick中抓取文本
- 如何绑定id < light >与事件Onclick
- 未找到JS事件OnClick
- 如何在js/prototype中触发具有特定顺序的事件(onclick)
- 无法触发javascript事件OnClick的复选框