0
<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')是否正确?

4

3 回答 3

1

尝试这个:

 $(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');
    });
 });

这是演示

于 2013-10-23T05:03:03.410 回答
1

看到你必须正确堆叠事件,我的意思是:

  1. 首先,您创建适合您的change事件
  2. 然后在它触发将起作用的事件之后

如下所示:

$('#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"

笔记:

您触发了错误的事件,并且在错误的位置。您需要先应用一个事件,然后才能触发该事件。

于 2013-10-23T05:36:07.687 回答
0

演示

在 change 函数中使用 Trigger 事件

$('#photo').change(function(e) {
$(this).trigger('click');
  alert("change fun");
});
于 2013-10-23T05:01:22.450 回答