Uncaught TypeError: jQuery(...).data(...) is not a function

一、背景:

一直运行正确的一个ajax表单提交页面,今天报以下这个错误:

二、问题分析:

一般出现“Uncaught TypeError”这类型的错误,有如下4个原因:

1:引入的js里面undefined未定义该函数

这种情况一般检查一下是否有改函数即可。一般更换新版本的js之后可能老版本的js方法就没有了。这个时候可以手动地把老版本的js方法加到新的版本,或者更改方法。

比如遇到过 handleError is not a function 这种情况就是这个原因。如果在jquery高级版本中将这个函数添加上 ,问题解决。

; (function ($) {

            jQuery.extend({

                handleError: function (s, xhr, status, e) {

                    if (s.error) {

                        s.error.call(s.context || s, xhr, status, e);

                    }

                    if (s.global) {

                        (s.context ? jQuery(s.context) : jQuery.event).trigger("ajaxError", [xhr, s, e]);

                    }

                },

                httpData: function (xhr, type, s) {

                    var ct = xhr.getResponseHeader("content-type"),

            xml = type == "xml" || !type && ct && ct.indexOf("xml") >= 0,

            data = xml ? xhr.responseXML : xhr.responseText;

                    if (xml && data.documentElement.tagName == "parsererror")

                        throw "parsererror";

                    if (s && s.dataFilter)

                        data = s.dataFilter(data, type);

                    if (typeof data === "string") {

                        if (type == "script")

                            jQuery.globalEval(data);

                        if (type == "json")

                            data = window["eval"]("(" + data + ")");

                    }

                    return data;

                }

            });[/code]
View Code

2:您的js文件引入路径错误了。

这个比较常见,检查引入路径是否正确即可。

3:您引入的js文件与别的js文件有冲突

这个时候就需要一个个的注释掉js文件来排查。

4:您引入的js文件顺序不对,也存在冲突,你就要调整一下引入顺序即可,或删除掉冲突的js文件,这是小编遇到的这种情况!

三、问题解决:

我的问题的原因属于第4种情况。在出问题所在的页面的模板页(master)里面引用的 jquery.form.js 这个文件和H-ui.min.js、H-ui.admin.js 冲突了。

采用的方法是把jquery.form.js 引用放到H-ui.min.js、H-ui.admin.js这两个前面

猜你喜欢

转载自www.cnblogs.com/sunxi/p/11039524.html