对象函数没有方法(我不是javascript编码器)

对象函数没有方法(我不是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

我有一个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 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安装得很好(我重新安装了它)。