繁体   English   中英

jQuery .click()函数在ajax调用中不起作用

JQuery .click() function not working inside ajax call

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有以下形式的文件输入,需要根据Ajax调用的结果来激活它。

<form id="checkin_form" enctype="multipart/form-data" method="post" style="visibility:hidden;">
    <input type="file" name="file[]" id="checkinfile"><br>
</form>

触发点击功能的javascript函数为:

function clickCheckInFile() 
{
    var file_index = selected_file.id;
    var file_name = $(selected_file).children('td:nth(1)').text();

    $.ajax({
        url: "scripts/check_file.php",
        type: "POST",
        dataType:'json',
        data: {file_index: file_index, file_name: file_name},
        success: function(data){
        if (data['response'] == 200)
        {
            if (data['type'] != "dir")
            {
                if (data['checked_out'] == 1 || data['checked_out'] == "1")
                {
                    if (data['checked_out_by'] == username)
                    {
                        if (data['user_permissions'][1] == 1)
                        {
                            $('#checkinfile').click(); 
                        }
                        else
                        {
                            alert('Access Denied.');
                        }
                    }
                    else
                    {
                        alert('Access Denied');
                    }
                }
                else
                {
                    alert('File is not checked out.');
                }
            }
            else
            {
                alert('Cannot check out a folder');
            }
        }
        else if (data['response'] == 300)
        {
            alert(data['message']);
        }
        else
        {
            handleAjaxResponse(data['response']);
        }
    }});
}

该行不起作用是$('#checkinfile')。click();。 一部分。 我可以在该位置触发一条警报消息,以便代码调用该行。 当我将单击移动到ajax调用之前时,它工作正常。

4 个回复

看来您正在尝试强制执行click事件。 .click()表示单击时该怎么做-它不会触发点击。

为此使用.trigger():

$('#checkinfile').trigger('click');

然后,您需要单独添加单击时的操作,如下所示:

 $('#checkinfile').click(function(){
//do things here
});

至于文件浏览器问题 从本文尝试以下解决方案:

将输入position:absoluteposition:absolutetop:*number that will remove it from viewport* ,它将起作用

这是.trigger()的文档

虽然通常最好在触发事件时使用.trigger()代替 (如果出于清晰性没有其他原因),此代码行似乎正常工作:

$('#checkinfile').click();

(当然,假设选择器找到了您期望的元素)

但是,真正的问题是...触发click事件时,您希望此元素什么? 根据发布的代码,没有为此的事件处理程序。

这是文件输入,所以也许您希望它为用户打开文件对话框? 尽管某些浏览器可能会这样做,但我怀疑这不是标准行为或预期行为。 文件输入因此类事件(事件,样式等)而臭名昭著,有时可能会有些痛苦。

怀疑正在发生的情况是,出于安全原因,浏览器在调用文件对话框之前需要实际的用户交互。 同样,此行为可能是特定于浏览器的,但请在此处查看几个示例:

模式似乎是,即使从代码中打开文件对话框,也需要手动交互。

看一下这个:

 $('#clickme').click(function() { $('#checkinfile').click(); }); $(document).on('change', '#checkinfile', function() { alert($(this).val()); }); 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <form enctype="multipart/form-data" id="checkin_form" style="visibility:hidden;"> <input type="file" name="file" id="checkinfile"> </form> <button id="clickme">click</button> 

这很容易

$( "example" ).on( "click", function() {
    alert( "click" );
});

您可以在此处查看文档: http : //api.jquery.com/on/

希望对您有帮助

1 .Click函数在jQuery中不起作用

我需要的: 我需要在单击button1时显示button2。 新材料:我需要做的是将button2保存在那里,所以如果您刷新或“运行”按钮2已经在那里,我该怎么做? 我已经完成/尝试过的事情: 我尝试了很多不同的事情,例如在更改范围周围进行了更改,以及检查控制台错误,但没有得 ...

2 jQuery .click() 在 .click 函数中不起作用

我有一些关于按钮选择的 jquery。 运行此命令后,将自动单击按钮(代码的最后一行),并触发“单击按钮”消息。 当手动按下正确的按钮(类别为“overall_size”的按钮)时,该函数会运行,会触发“按钮已单击”消息,原始按钮上的 css 已更改,但不会再次单击。 它与底部显示的代码相同,显然可 ...

2020-10-27 15:24:36 2 30   jquery
4 jQuery在Ajax调用中不起作用

我一直在尝试使用Jquery进行Ajax调用。 这样做时,我错过了Jquery的各个角落,并且滚动功能不起作用。 但是,即使没有Ajax调用,相同的功能也可以正常工作。 任何人都可以提供解决方案。 我的应用程序在Ruby on Rails中,而我在ROR中的Ajax调用如下。 ...

5 $ .ajax函数在jQuery中不起作用

我从jquery开始,遇到了一个小问题,其中$ .ajax(...)无法正常工作。 实际上,整个jquery的javascript业务一直很艰难,因为在脚本不起作用的情况下解决了问题。 这是我的代码... 如您在代码中所看到的,我已经注释掉.ajax函数,而放了一些其他代码段并且它起 ...

6 li的click函数在jQuery中不起作用

在我的HTML我有ol和li这是我的HTML并且我有那些链接的脚本,例如当我单击它时,我会不断发出警报以检查其是否起作用 $('#namesId ol li').click(function() { alert('clicked'); //ToDo }); &lt;sc ...

10 .click()jQuery函数不起作用

我已经在php中编写了以下代码: 我已经在我的jquery文件中写了这个: 但是,当我单击并服务器找到用户的信息并将其放入recoveryWindow时,单击功能将不起作用,并且不会将操作的答案发送给用户。 请帮助我,我没有时间 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM