javascript - 关于ajax请求返回值后,调用click事件不执行
PHP中文网
PHP中文网 2017-04-10 18:06:04
0
16
1247

我的代码如下:

<!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中文网

认证高级PHP讲师

répondre à tous(16)
大家讲道理

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

PHPzhong

应该没有sucess

左手右手慢动作

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

巴扎黑

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

小葫芦

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

大家讲道理

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

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal