jQuery - 如何删除click事件的preventDefault(),代码如下所示,
$('button').on('click', 'loader', function(event){
$.ajax({
url: 'www.myweb.com/string/index.html',
type: 'get',
dataType: 'html',
success: function(data){
event.preventDefault();
// something else
},
error: function(data){
// how to remove event.preventDefault(); here?
}
});
答案 0 :(得分:2)
正如评论中所指出的,$.ajax
函数默认是异步的。因此,成功事件处理程序将在click事件处理程序返回后运行。
如果您确实想这样做,可以将async
选项设置为false
,将ajax调用指定为同步。
$('button').on('click', 'loader', function (event) {
$.ajax({
url: 'www.myweb.com/string/index.html',
type: 'get',
dataType: 'html',
async: false
}).done(function () {
event.preventDefault();
}).fail(function () {
// Do something else here
}));
显然你无法实际回滚preventDefault
。 Once you call it, you cannot uncall it.因此,仅在success
处理程序中调用该方法非常重要(或者,在我的修改示例中,调用done
方法)。