gpt4 book ai didi

javascript - 为什么要调用 jQuery 的 unbind ('change' ) 方法来触发更改事件?

转载 作者:行者123 更新时间:2023-12-03 11:30:02 24 4
gpt4 key购买 nike

下面是我从一个较大的脚本中提取的一些 JavaScript,该脚本用于允许 AJAX 样式图像上传,作为 StackOverflow 使用的 Markdown 编辑器的一部分。

一旦您使用 HTML 表单文件字段从计算机中选择图像,它就会触发脚本执行图像上传并返回新上传图像的 URL。

这句话特别让我好奇,我需要帮助更好地理解它......

$file.unbind('change').ajaxfileupload()

我了解 unbind('change') 正在通过 change 事件触发上传。但是我很困惑为什么要使用 unbind()

据我了解,该函数基本上用于删除事件处理程序?我的逻辑是认为它会使用 bind() 但它使用 unbind() 而不是,而且它可以正常工作!但我不知道为什么。
我在这里缺少什么?这里有足够的代码来回答我的问题吗?

我认为 unbind() 用于删除/停止事件处理程序的运行是否正确?如果我是对的,那么我不确定为什么它会附加到一个据称执行相反操作并正在等待图像触发上传的元素上?

希望这一切对某人有意义,他们可以为我指明正确的方向,一个简单易懂的答案将是美妙的,谢谢!

var $file = $('input[type=file]', $dialog);

// upload
$file.unbind('change').ajaxfileupload({
action: $file.attr('data-action'),
params: {
enctype: 'multipart/form-data'
},
onStart: uploadStart,
//onComplete: uploadComplete
'onComplete': function(response) {
console.log(response);
alert(JSON.stringify(response));
}
});

最佳答案

我的想法是 unbind()实际上是删除更改事件的事件处理程序。如果我们查看 jQuery 文档 .unbind()似乎没有任何歧义。那么代码会做什么呢?

我的猜测是,之前在某个地方添加了更改事件,我们想将其删除。 $file.unbind('change').ajaxfileupload(....)的逻辑对我说...首先,我们从 $file 引用的 jQuery 对象中删除任何更改事件的事件处理程序。然后执行名为 ajaxfileupload 的小部件.

关于javascript - 为什么要调用 jQuery 的 unbind ('change' ) 方法来触发更改事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26771853/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com