onclick输入文件,只触发一次onChange事件
onclick on input File, fired only one time onChange event
我的代码有问题。当"simulateClickBtn"被调用时,系统弹出一个选择文件的窗口。当选择文件时,我们将转到回调,sendMessage函数完成。但这只是第一次有效。其他时候,我从来没有改变回调…
HTML:<input type="file" id="hiddenInput" name="somename" size="chars">
JS:
this.simulateClickBtn = function simulateClickBtn() {
localFileChoose = undefined ;
$('#hiddenInput').click();
$('#hiddenInput').off().on("change", function(evt){
chrome.runtime.sendMessage({
message : "SHOW_UPLOAD_TYPE_VIEW",
fileName: evt.target.files[0].name,
}, function(response) { });
localFileChoose = evt.target.files[0];
});
};
所以,你可能不想在模拟点击处理程序中绑定隐藏的点击处理程序。每次点击都会重新绑定,这是不必要的。试试这样做:
var chosenFile;
this.simulateClickBtn = function simulateClickBtn() {
$('#hiddenInput').click();
};
$('#hiddenInput').on('change', function(evt) {
chrome.runtime.sendMessage({
message : 'SHOW_UPLOAD_TYPE_VIEW',
fileName: evt.target.files[0].name,
}, function(response) { });
chosenFile = evt.target.files[0];
});
相关文章:
- 主干模型更改事件只触发一次
- 如何检测滚动事件是否像在触摸设备上一样只触发一次
- 在单击事件中,第一次单击时激发代码一次,其余代码在所有单击时运行
- 简单的onclick事件只起过一次作用
- 一次点击,两次'单击'事件已启动
- Javascript事件发射器一次处理多个事件
- jQuery单击事件在一次之后不会触发
- JQuery只检查了一次事件工作
- 只为构造函数的所有实例触发一次事件侦听器
- 如何只调用一次事件处理程序,而不是每次单击项目时调用事件处理程序
- 在鼠标悬停时添加事件,如何只添加一次事件
- 每 60 秒仅启动一次事件 (JavaScript)
- 主干分组依据集合仅在一次事件单击后呈现
- 在没有jquery的情况下只执行一次事件侦听器函数
- 如何在Javascript中只执行一次事件处理程序
- jquery只在静态和动态元素上触发一次事件
- 在获得一次事件后删除ng单击事件
- HTML5 -视频播放时每隔几秒触发一次事件
- 为多个控件注册一次事件处理程序-是否可能
- 只运行一次事件