DispatchQueue.global(qos: .background).async {
self.doInBackground()
当点击按钮时,发送HEAD请求,当我得到200响应时,再次触发click事件,但这次是使用fileExist选项。再次调用监听器(我检查了这个)但没有任何反应,它就像e.preventDefault()仍然有效。有什么想法吗?
trigger()方法将触发jQuery事件,但不会触发浏览器的默认行为,在我的情况下会重定向到另一个页面。此代码有效:
$(document).on('click', '[data-toggle="if-exist"]', function (e, options) {
options = options || {};
if (options.fileExist) {
return true;
}
var target = e.currentTarget;
var fileId = $(this).data('file');
e.preventDefault();
$.ajax({
url: Routing.generate('checkFile', {file: fileId }),
type: 'HEAD',
statusCode: {
404: function () {
alert('File does not exist');
},
200: function () {
$(target).trigger('click', { 'fileExist': true });
}
}
});
});
答案 0 :(得分:0)
使用e.stopImmediatePropagation();停止多次调用ajax。