对象函数没有方法(我不是javascript编码器)
我有一个WoodPress网站,运行Woocommerce和WPML多语言插件。 在结帐页面上,我发现有一个javascript错误(我对js不在行) 错误是: 未捕获的TypeError:对象函数(a,b){return new e.fn.init(a,b,h)}没有方法“removeCookie” 这就是所谓的错误:对象函数没有方法(我不是javascript编码器),javascript,object,methods,Javascript,Object,Methods,我有一个WoodPress网站,运行Woocommerce和WPML多语言插件。 在结帐页面上,我发现有一个javascript错误(我对js不在行) 错误是: 未捕获的TypeError:对象函数(a,b){return new e.fn.init(a,b,h)}没有方法“removeCookie” 这就是所谓的错误: jQuery(document).ready(function(){ if(jQuery.cookie != undefined) { // Check if cook
jQuery(document).ready(function(){
if(jQuery.cookie != undefined) {
// Check if cookie are enabled
jQuery.cookie('wpml_browser_redirect_test', '1');
var cookie_enabled = jQuery.cookie('wpml_browser_redirect_test') == 1;
jQuery.removeCookie('wpml_browser_redirect_test');
...
下面是带有函数的文件:
(function ($, document, undefined) {
var pluses = /\+/g;
function raw(s) {
return s;
}
function decoded(s) {
return decodeURIComponent(s.replace(pluses, ' '));
}
$.cookie = function (key, value, options) {
// key and at least value given, set cookie...
if (value !== undefined && !/Object/.test(Object.prototype.toString.call(value))) {
options = $.extend({}, $.cookie.defaults, options);
if (value === null) {
options.expires = -1;
}
if (typeof options.expires === 'number') {
var days = options.expires, t = options.expires = new Date();
t.setDate(t.getDate() + days);
}
value = String(value);
return (document.cookie = [
encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value),
options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE
options.path ? '; path=' + options.path : '',
options.domain ? '; domain=' + options.domain : '',
options.secure ? '; secure' : ''
].join(''));
}
// key and possibly options given, get cookie...
options = value || $.cookie.defaults || {};
var decode = options.raw ? raw : decoded;
var cookies = document.cookie.split('; ');
for (var i = 0, parts; (parts = cookies[i] && cookies[i].split('=')); i++) {
if (decode(parts.shift()) === key) {
return decode(parts.join('='));
}
}
return null;
};
$.cookie.defaults = {};
$.removeCookie = function (key, options) {
if ($.cookie(key, options) !== null) {
$.cookie(key, null, options);
return true;
}
return false;
};
})(jQuery, document);
因为我不懂javascript,我真的不知道该怎么想。我知道“对象函数没有方法”是一个常见的问题,我看过其他帖子,但我无法理解
所以,男孩(和女孩),我需要这方面的帮助
谢谢
Bruno如果您没有包含任何jQuery.cookie插件,就会出现这种情况。我同意上面的帖子,但这也应该有帮助: 您的错误意味着当您调用/使用.removeCookie函数时,您的代码无法找到要使用该名称执行的函数/方法。 确保使用.removeCookie方法的文件与使用代码的文件位于同一文件夹中,并确保您的文件“包括”使用.removeCookie方法的文件。在“.removeCookie”希望找到解决方案之前,您可能还需要编写其他内容。
此外,如果您在所有代码中都使用Wordpress,您可能希望获得Wordpress的帮助。可能是安装不正确或是什么原因导致代码出现故障…您好,非常感谢您的回答。这是我检查的第一件事,它包含在。没有404或类似的问题,没关系。我用firebug和chrome控制台进行了检查。@BrunoHug:jQuery之后包括它吗?还有其他Jquery吗?在Jquery之后(jqueryv1.8.3)。是的,你是对的,还有一个是由主题加载的(jqueryv1.7.1)。这就是问题所在吗?@BrunoHug:这就是问题所在。该插件附加到jQuery的第一个实例,但第二个实例将替换它。您不应该包含jQuery的多个副本。我通过撤消一个jQuery调用来解决这个问题,但它仍然不起作用。我不知道到哪里去找,非常感谢你的回答。这是我检查的第一件事,它包含在。没有404或类似的问题,没关系。我检查了firebug和chrome控制台。Wordpress安装得很好(我重新安装了它)。