0

我正在使用ajaxupload上传和使用 jQuery 1.7.2。我收到这样的错误

TypeError: jQuery.createUploadForm is not a function
[Break On This Error]   

... jQuery.createUploadForm(id, s.fileElementId, (typeof(s.data)=='undefined'?false... 

我的代码是

function ajaxFileUpload()
    {
        jQuery.ajaxFileUpload
        (
            {
                url:'<?php echo $currenturl.&fileupload=enable;?>',
                secureuri:false,
                fileElementId:'fileToUpload',
                dataType: 'json',
                success: function (data, status)
                {
                    if(typeof(data.error) != 'undefined')
                    {
                        if(data.error != '')
                        {
                            alert(data.error);
                        }else
                        {
                            alert(data.msg);
                        }
                    }
                }
            }
        )

        return false;

    }   

和 html 是

<div class="upload-button"><input type="button" value="upload" id="upload-btn" onclick="return ajaxFileUpload();"/></div>

请帮我解决这个问题。提前致谢。

4

3 回答 3

1

is not a function错误可能由多种原因引起......最常见的是:

  • 插件文件的路径不正确或根本不包含在页面中。易于在浏览器控制台中检查它正在作为页面资源加载
  • 脚本加载顺序不正确。插件必须在您尝试使用它之前加载
  • jQuery.js 没有在所有插件和依赖代码之前加载

编辑:另一个真正常见的问题,尤其是在 wordpress 网站上,是在某些插件加载后加载额外版本的 jQuery。如果在之前的插件加载后第二次加载 jQuery,它会清除它们

于 2012-10-27T12:42:45.833 回答
0

您需要将代码放入$(document).ready(function(){...});事件中

于 2012-10-27T12:44:25.367 回答
0

确保你已经包含jquery.js在插件 js 文件之前。

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript" src="/js/myplugin.js"></script>

此外,避免on*在 HTML 中使用过时的属性。由于您已经在函数中使用了 jQuery,因此您可以简单地将点击处理程序附加到元素以运行函数,如下所示:

$(function() {
    $("#upload-btn").click(ajaxFileUpload);
});
于 2012-10-27T12:39:21.727 回答