<div style="visibility:hidden;"><input type="file" name="photo" id="photo" /></div>
$('#photo').trigger('change');
$('#photo').change(function(e) {
alert("change fun");
});
Но предупреждение не отображается, я имею в виду, что изменение не запускается вообще. Мой вопрос заключается в том, как вызвать изменение из jquery без фактического просмотра файла $().trigger('change')
является правильным?
Увидите, что вы должны правильно складывать событие, что я имею в виду:
change
вашего деласледуйте примеру:
$('#photo').change(function(e) { // change event created
alert("change fun");
});
$('#photo').trigger('change'); // then trigger
Хотя вы можете связать несколько событий с использованием метода .on()
:
$('#photo').on('change click', function(e) { // change event created
alert("change fun");
});
$('#photo').trigger('change'); // Here you can trigger either "change" or "click"
Вы вызывали неправильное событие, а также в неправильном месте. Сначала нужно применить событие, только тогда вы можете инициировать это событие.
Попробуй это:
$(document).ready(function(){
// if you want file change event try this
$('#photo').on('change', function(e){
alert('change function');
});
// Or if you want click event try this
$('#photo').on('click', function(e){
alert('click function');
});
});
Вот демонстрация
Использование события Trigger внутри функции изменения
$('#photo').change(function(e) {
$(this).trigger('click');
alert("change fun");
});
change
неclick
, так что вместо этого инициируйтеchange