Подтвердить что ты не робот

$.cookie не является функцией

Когда я пытаюсь загрузить мою страницу, использующую jquery, при нажатии следующей строки:

if ($.cookie('compare') != null) 

Я получаю ошибку $.cookie не является функцией. Кто-нибудь видел это раньше?

4b9b3361

Ответ 1

Это означает, что плагин $.cookie не включен в страницу, по крайней мере, не вызвав его. Удостоверьтесь, что он включен и включен, прежде чем он будет использоваться. Включите его сразу после того, как сам jQuery будет в безопасности.

Просто подсказка: несколько других плагинов полагаются на плагин cookie (но не обязательно проверяют, существует ли это до его вызова), вы можете использовать его.

Ответ 3

Нет, но я могу показать вам, как сделать очень легко...

Создайте отдельный файл js, назовите его, что хотите, для удобства этого я назову его jCook.

В вашем заголовке после добавления jQuery добавьте новый файл:

<script type="text/javascript" src="jquery.js"></script>  
<script type="text/javascript" src="jCook.js"></script>  <!-- here it is! -->

И ниже приведен код EASY для размещения в файле:

(function($) {
    if (!$.setCookie) {
        $.extend({
            setCookie: function(c_name, value, exdays) {
                try {
                    if (!c_name) return false;
                    var exdate = new Date();
                    exdate.setDate(exdate.getDate() + exdays);
                    var c_value = escape(value) + ((exdays==null) ? "" : "; expires="+exdate.toUTCString());
                    document.cookie = c_name + "=" + c_value;
                }
                catch(err) {
                    return false;
                };
                return true;
            }
        });
    };
    if (!$.getCookie) {
        $.extend({
            getCookie: function(c_name) {
                try {
                    var i, x, y,
                        ARRcookies = document.cookie.split(";");
                    for (i = 0; i < ARRcookies.length; i++) {
                        x = ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
                        y = ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
                        x = x.replace(/^\s+|\s+$/g,"");
                        if (x == c_name) return unescape(y);
                    };
                }
                catch(err) {
                    return false;
                };
                return false;
            }
        });
    };
})(jQuery);

Попробуйте поймать и что не только помогает гарантировать вам получение "ложного" возврата, если вы что-то не так, но на самом деле никогда не должно быть проблемой. Использовать код легко...

На вашей странице, где ваш код загрузки или что-то другое, выполните следующие действия:

$.setCookie("nameOfCookie", "someValue", 30); // where 30 is the number 
// of days to expire, or you could leave blank as:
$.setCookie("nameOfCookie", "someValue")

// And to retrieve your cookie
$.getCookie("nameOfCookie");

Посмотрите, как это было!?

И только для того, чтобы решить, ниже приведен пример реального мира, чтобы сохранить состояние выбранного выпадающего меню

$(function(){
        $("select[name=somthing]").change(function(e) {
            $.setCookie("selectThis", $(this).val());
        });
        //  And to use ...
        if ($.getCookie("selectThis")) $("select[name=somthing]").val( $.getCookie("selectThis") ).change();
});

Ответ 4

В принципе, для этой проблемы могут быть разные причины.

  • Возможно, вы не добавили плагин jquery.
  • Обязательно включите файл jQuery перед плагином cookie
  • Если вы уже сделали выше двух затем попробуйте загрузить новую версию плагина jquery-cookie. что также решило мою проблему.

Ответ 5

Попробуйте включить Mod_Sec для своего домена или попросите свою хостинговую компанию включить его. Надеюсь, это поможет.

Ответ 7

Я использую этот код -

if( $.cookie('siteLayout') != undefined ){
   if( $.cookie('siteLayout') == 'compact' ) 
   $(settings.bodyElem).addClass('container');
}

И он отлично работает. Но мне нужно было использовать другую версию jQuery на определенной странице, где версия была 1.7.2, но я фактически использовал 1.10.2. После использования нескольких версий jQuery я получил эту ошибку -

TypeError: $.cookie не является функцией

то я использовал jQuery.cookie вместо $.cookie, и он работает. Надеюсь, это также поможет;)

Ответ 8

Для меня проблема была исправлена ​​после загрузки последней версии jquery.cookie js

Ответ 9

$.cookie не является стандартной функцией jQuery. При включении скрипта cookie обязательно включите jQuery FIRST, а затем плагин cookie. т.е.

<script src="~/Scripts/jquery-2.0.3.js" type="text/javascript"></script>

всегда должен предшествовать

<script src="~/Scripts/jquery_cookie.js" type="text/javascript"></script>

Ответ 10

<script src="js/jquery.mobile-1.4.5.min.js"></script>
<script src="js/jquery.cookie.js"></script>

первый плагин должен быть juqery.js, а второй плагин - cookie.js