2014-02-04 3 views
0

Я использовал метод, описанный здесь:нажмите() дважды стреляя на светлячок

http://ericbidelman.tumblr.com/post/14636214755/making-file-inputs-a-pleasure-to-look-at

программно огонь входной файл окно от кнопки управления. Он хорошо работает в Chrome и IE, но дважды открывает окно загрузки файлов в Firefox.

Следующие сообщения кажутся похожими, и я попытался добавить stopPropagation в событие click, но это не имело никакого значения.

jQuery - .on('click', ...) event fires two times in Firefox

jQuery click event fired twice in firefox but not in IE

Спасибо.

EDIT

Соответствующий HTML является:

<button type="button" id="load_slow_button">Load Playlist</button> 
<input id="load_slow_list" type="file" onchange="load_list(this.id)"> 

Соответствующий Javascript для кнопки:

document.getElementById("load_slow_button").addEventListener('click', function(event) { 
    document.getElementById("load_slow_list").click(); 
    event.stopPropagation; 
}, false); 

Javascript для ввода имени файла является стандартным обработчиком файл, который отлично работает при щелчке по файлу вручную.

+2

показать нам свой код –

+0

Код был добавлен ... – user1977132

ответ

0

Проблема была решена путем создания обработчика события с именованной функцией.

В Init() функция, которая работает, когда окно нагрузки:

document.getElementById("load_fast_button").addEventListener("click", process_click_fast, false); 

И тогда обработчик событий в отдельном имени функции:

function process_click_fast() { 
    document.getElementById("load_fast_list").click(); 
} 

Я не знаю, почему это решает проблема, поэтому я буду благодарен за слушание от любого, кто знает!

Смежные вопросы