我有一个函数fileUploadHandler,它作为.on()中的参数传递,如下所示:
$('#image_upload').on('change', fileUploadHandler);
我想将回调分配给fileUploadHandler,以便上述完成后立即运行。我已经尝试了几件事,例如:
fileUploadHandler(event, function() {
// code to run as callback
}
});
但是我不知道如何在fileUploadHandler运行且on更改完成后如何使回调立即运行。
详细说明:
fileUploadHandler包含执行几种图像裁剪操作的代码,包括嵌套的AJAX调用(可能可以组织得更整洁,但无论哪种方式)。我正在尝试使用以下方法获取width和height HTML属性的值:
$(".cr-image").attr("width") and $(".cr-image").attr("height")
但是,由于这些值是使用其他JS库填充的,因此运行上述attr方法可为我提供未定义的值,而不是未定义的值,我认为可以通过在fileUploadHandler中的操作运行后运行attr来解决此问题。但同时,fileUploadHandler本身是对.on('change')的回调
最佳答案
fileUploadHandler是“回调”函数,或更确切地说是事件处理程序,在您的更改事件发生时将被调用。
function fileUploadHandler (event) {
// code that runs when the change event is fired.
// $(event.currentTarget) will be the element that triggered the event
}
$('#image_upload').on('change', fileUploadHandler);
如果由于某种原因您需要更复杂一点,可以尝试
function fileUploadHandler(callback, event) {
// do stuff with the event/element here
$.ajax('/foo.php').then(callback);
}
function followupCallback(response) {
console.log(response);
// do your processing here using the server responses.
}
$('#image_upload').on('change', fileUploadHandler.bind(this, followupCallback));
关于javascript - 更改时内部的jQuery回调,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46880312/