为什么要调用jQuery's unbind('change')方法来触发更改事件
Why would you call jQuery's unbind('change') method to trigger a change event?
下面是我从一个较大的脚本中提取的一些JavaScript,该脚本用于允许AJAX风格的图像上传,作为StackOverflow使用的标记编辑器的一部分。
一旦您使用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()
实际上是在删除更改事件的事件处理程序。如果我们看一下.ubind()的jQuery文档,似乎没有歧义。那么,代码可能在做什么呢?
我的猜测是,之前在某个地方添加了一个更改事件,我们想将其删除。$file.unbind('change').ajaxfileupload(....)
的逻辑告诉我。。。首先,我们从$file
引用的jQuery对象中删除更改事件的任何事件处理程序,然后执行名为ajaxfileupload
的小部件。
- 如何防止jQueryonclick事件中的Ruby方法在页面刷新时执行
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- 如何在所有ng点击事件AngularJS上启动一个方法
- 关闭第二个事件源上的第一个事件源's onopen方法
- 有没有一种方法可以让内联事件处理程序在元素创建后立即执行
- 异步处理所有事件处理程序的方法
- 调用DOM提交方法时未激发jQuery提交事件
- 我能从“;输入“;事件是否有更好的方法来跟踪文本更改
- 在离子2中,有任何方法可以将涡旋动量作为一个事件来检测
- 如何收听骨干事件方法上的keydown
- 停止内部事件处理程序冒泡的其他方法,jQuery
- 直接在DOM事件处理程序中调用作用域函数的最短方法是什么
- Jquery事件绑定获胜'当作为方法调用时不起作用,但当直接在控制台中调用时会起作用
- 在 Web 应用中处理事件跟踪的最佳(高性能)方法
- 将 react-redux 与基于事件的第三方库一起使用的最佳方法是什么?
- 从面板中调用一个在 ExtJs 中没有事件的方法
- 有没有一种方法可以从页面上下文中侦听幻影上下文中的事件
- 在 JavaScript 类中创建方法事件
- 在dart中从html调用方法/事件
- Javascript: ' this '和object.方法事件处理程序