输入类型=文件单击不通过jquery触发

时间:2013-10-23 04:59:54

标签: jquery

<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')是对的吗?

3 个答案:

答案 0 :(得分: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');
    });
 });

以下是 Demo

答案 1 :(得分:1)

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

  1. 首先,在您的案例中创建change的事件
  2. 然后触发可行的事件
  3. 如下所示:

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

    注意:

      

    你在错误的地方触发了错误的事件。您需要先应用事件,然后才能触发该事件。

答案 2 :(得分:0)

DEMO

在更改功能中使用触发事件

$('#photo').change(function(e) {
$(this).trigger('click');
  alert("change fun");
});