AjaxUpload:为什么我要点击两次?

时间:2010-11-28 18:51:12

标签: jquery ajax file-upload click livequery

下面的代码使用AjaxUpload.2.0.min.js

将文件上传到服务器

但您需要在操作系统窗口的“添加文件”按钮上单击几次(在哪里选择要上传的文件)才能显示,而不是单击一次。

此外,如果您在链接中单击一次,然后将鼠标移出红色区域并单击(从#upload_files开始),最后一次单击链接,它就可以运行,操作系统窗口会打开..但为什么我必须这样做? AjaxUpload最初是否会在.livequery调用中绑定?那么,我该如何约束呢?

请专注于此,在操作系统窗口中显示鼠标的第一次单击。其余的编程在我的服务器上正常工作。

将.js上传到github以使代码易于测试,但在实际情况下,它们就在我的机器中。

非常感谢

<head>
<style>
#upload_files{color: #fff; background:#F32201; border:1px solid #7E9DB9; padding:2px;}
</style>

<script type="text/javascript" src="https://gist.github.com/raw/6dd585079502f138d87e/7c243080233761859937d52195b670602731a379/jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="https://gist.github.com/raw/eeb2fe78f63ab80b626d/5be66e749b19fbb5b7c8814bf72a98c083f2aaaf/jquery.livequery.min.js"></script>

<script type="text/javascript" src="https://gist.github.com/raw/826bff2445c8533dd7fc/797734455959ef27796b6770c95a7b39049ae6e9/AjaxUpload.2.0.min.js"></script> 

<script type="text/javascript">
      $(document).ready(function() {

    function uploadFiles(){   
        new AjaxUpload('#upload_files', {
            action: 'whereToUploadInServer.php',
        });     

    }//end uploadFiles

           $("#upload_files").livequery("click", function(e){
        e.preventDefault();
        uploadFiles();
        //debugger ;
    }); 
}); //end document ready

    </script>


  </head>
  <body>
       <div><a href="#" id="upload_files">Add File</a></div> <br>

  </body>

1 个答案:

答案 0 :(得分:1)

据我所知,根据Github上的文档,ajaxupload组件目前还没有完全运行。作者建议使用新的qq.FileUploader插件。

这是一个在单击div元素后立即显示文件对话框的示例。

jsFiddle example

希望它有所帮助。