我有一個基本的input[file]
元素,我隱藏。當你點擊#holder
時,會彈出一個文件瀏覽器。但選擇一個文件會觸發console.log()
行被執行兩次(在我的電腦上)。文件輸入觸發器改變事件兩次(或更多)
請注意:以下代碼會使我的Chrome選項卡崩潰。
您應該將其作爲單獨的文件運行。無法提供「正常」演示,但這是最接近MCVE。
var element = document.getElementById('holder');
element.onclick = function(e) {
var input = document.getElementById('file-input');
input.click();
input.addEventListener("change", function(evt) {
console.log(evt);
Phimij.addFiles(input.files);
}, false);
};
#holder {
border: 10px dashed #ccc;
width: 300px;
height: 300px;
margin: 20px auto;
}
#holder.hover {
border: 10px dashed #333;
}
#file-input {
display: none;
}
<div id="holder">
<input type="file" multiple id="file-input" />
</div>
你在父每次點擊事件添加事件偵聽器。另外,如果你點擊輸入,它也會觸發輸入的點擊 – Kaiido