javascript addEventListener注册以前的更改
我正在建立一个上传文件的模式。它在第一次尝试时工作正常,然后在第二次尝试时上载图像两次,在第三次尝试时上载三次,依此类推。这可能是一些基本的问题,但我不知道如何预防 基本上,导致我的问题的是事件侦听器的行为:javascript addEventListener注册以前的更改,javascript,jquery,Javascript,Jquery,我正在建立一个上传文件的模式。它在第一次尝试时工作正常,然后在第二次尝试时上载图像两次,在第三次尝试时上载三次,依此类推。这可能是一些基本的问题,但我不知道如何预防 基本上,导致我的问题的是事件侦听器的行为: document.getElementById('upfile').addEventListener('change', askForTags, false); 测试用例如下所示: 警报将在第一次上传时显示一次,然后显示两次等。如何停止该行为 完整代码: document.getElem
document.getElementById('upfile').addEventListener('change', askForTags, false);
测试用例如下所示:
警报将在第一次上传时显示一次,然后显示两次等。如何停止该行为
完整代码:
document.getElementById('upfile').addEventListener('change', askForTags, false);
function askForTags(evt) {
$('.add-tags-section').show();
$("#submit-tags").click(function () {
tags = $('#add-tags-input').val();
$('.add-tags-section').hide();
handleFileSelect(evt);
});
}
function handleFileSelect(evt) {
alert('here');
}
每次调用
askForTags
时,您都会绑定另一个相同的click
事件处理程序。只绑定一个单击处理程序,它就可以工作了
演示:
每次调用
askForTags
时,您都会绑定另一个相同的click
事件处理程序。只绑定一个单击处理程序,它就可以工作了
演示:
每次调用
askForTags
时,您都会绑定另一个相同的click
事件处理程序。只绑定一个单击处理程序,它就可以工作了
演示:
每次调用
askForTags
时,您都会绑定另一个相同的click
事件处理程序。只绑定一个单击处理程序,它就可以工作了
演示:
谢谢,但这样做,我们将不同的事件传递给handleFileSelect(evt)。此事件没有附加任何文件,我正在使用FileReader将所选图像转换为二进制,因此无法使用该文件。这里有不同的答案,我会接受,但很快就被删除了。演示:@user1590158:提交表单时,这些文件不是直接从
input type=“file”
元素中获取,还是通过事件对象获取?像这样绑定/解除绑定一个点击处理程序似乎很奇怪。谢谢,但这样做我们将把不同的事件传递给handleFileSelect(evt)。此事件没有附加任何文件,我正在使用FileReader将所选图像转换为二进制,因此无法使用该文件。这里有不同的答案,我会接受,但很快就被删除了。演示:@user1590158:提交表单时,这些文件不是直接从input type=“file”
元素中获取,还是通过事件对象获取?像这样绑定/解除绑定一个点击处理程序似乎很奇怪。谢谢,但这样做我们将把不同的事件传递给handleFileSelect(evt)。此事件没有附加任何文件,我正在使用FileReader将所选图像转换为二进制,因此无法使用该文件。这里有不同的答案,我会接受,但很快就被删除了。演示:@user1590158:提交表单时,这些文件不是直接从input type=“file”
元素中获取,还是通过事件对象获取?像这样绑定/解除绑定一个点击处理程序似乎很奇怪。谢谢,但这样做我们将把不同的事件传递给handleFileSelect(evt)。此事件没有附加任何文件,我正在使用FileReader将所选图像转换为二进制,因此无法使用该文件。这里有不同的答案,我会接受,但很快就被删除了。演示:@user1590158:提交表单时,这些文件不是直接从input type=“file”
元素中获取,还是通过事件对象获取?这样绑定/解除绑定一个click处理程序似乎很奇怪。
document.getElementById('upfile').addEventListener('change', askForTags, false);
function askForTags(evt) {
$('.add-tags-section').show();
}
$("#submit-tags").click(function () {
tags = $('#add-tags-input').val();
$('.add-tags-section').hide();
handleFileSelect(evt);
});
function handleFileSelect(evt) {
alert('here');
}