Heim  >  Fragen und Antworten  >  Hauptteil

javascript - 关于ajax请求返回值后,调用click事件不执行

我的代码如下:

<!DOCTYPE html>
<html>
    <head>
        <title>this is a test</title>
        <script src="jquery-1.12.1.min.js"></script>
    </head>
    <body>
        <input type="file" id="testId"/>
        <button id="btn" class="test">click me</button>
        <script>
            function click(){
                $('#testId').click();
            }
            $(document).ready(function(){
                $('body').on('click', '.test', function(e){
                    $.ajax({
                        url : 'XXXXXXXX',
                        method  : 'GET',
                        dataType : 'jsonp',    
                        success : function(){
                            click();
                        }
                    });
                
                });
            });
        </script>
    </body>
</html>

请问各们大神,为什么$('#testId').click()并未起作用,input file没有弹出选择框?

PHP中文网PHP中文网2750 Tage vor1168

Antworte allen(16)Ich werde antworten

  • 大家讲道理

    大家讲道理2017-04-10 18:08:04

    试了下去掉ajax后在chrome可以调用input,firefox不行,应该是firefox下span的点击被button的点击覆盖了

    Antwort
    0
  • PHPz

    PHPz2017-04-10 18:08:04

    应该没有sucess

    Antwort
    0
  • ringa_lee

    ringa_lee2017-04-10 18:08:04

    1.确认接口是否正确的返回。
    2.用trigger代理click事件。

    Antwort
    0
  • 巴扎黑

    巴扎黑2017-04-10 18:08:04

    因为input type=file,使用代码触发click事件是无效的,需要用户真实地点击才能生效

    Antwort
    0
  • 高洛峰

    高洛峰2017-04-10 18:08:04

    没有触发事件,可以模拟触发事件:$('#testId').trigger("click");
    另外,建议写方法名写的有意义好理解一点,不要和原生或者库的方法重名。

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-04-10 18:08:04

    至少有一点可以肯定的是你的方法命名不能用click

    Antwort
    0
  • StornierenAntwort