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;

                }

            });

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

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

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

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

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

5、缺少返回的json数据

三、问题解决:

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

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

 

如果本文引用了你的文章而未注明,请及时联系我。

分类: 【基础】调试【语言】JavaScript与jquery

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值