Cuando intento cargar mi página que utiliza jQuery, cuando se golpea la siguiente línea:
if ($.cookie('compare') != null)
consigo el error $ .cookie no es una función. Alguien ha visto esto antes?
Cuando intento cargar mi página que utiliza jQuery, cuando se golpea la siguiente línea:
if ($.cookie('compare') != null)
consigo el error $ .cookie no es una función. Alguien ha visto esto antes?
Eso significa que el $.cookie
plugin no se incluye en la página, al menos no se está llamando. Asegúrese de que ambos estén incluidos, y se está incluyendo antes de que se está utilizando. Inclúyalo justo después de jQuery para estar seguro.
Solo un consejo: Varios otros complementos dependen del complemento de cookies (pero no necesariamente comprueban si existe antes de llamarlo), podría estar usando uno.
Este era el problema, parece que mi proveedor de hosting estaba teniendo un problema al cargar jquery.cookie.js, cambiar el nombre a jqueryycookie.js resolvió el problema – Introgy
Más soluciones posibles aquí: http://stackoverflow.com/questions/18024539/jquery -cookie-is-not-a-function – ElliotSchmelliot
¿Tiene el jQuery cookie plugin?
No, pero puede mostrar cómo hacer una muy fácil como ...
Crear un archivo js separado, el nombre de lo que quiere, para la facilidad de esto, lo llamaré jCook.
En su cabeza, después de agregar jQuery, añadir el nuevo archivo:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jCook.js"></script> <!-- here it is! -->
Y a continuación es el código fácil de poner en el archivo:
(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);
El intento de captura y lo que no solo ayuda a asegurar que obtenga un retorno "falso" si hace algo incorrecto, pero realmente nunca debería ser un problema. Para utilizar el código es fácil ...
En su página, donde el código de carga o lo que se acaba de hacer lo siguiente:
$.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");
Ver lo fácil que era !?
Y sólo para resolver, a continuación es un ejemplo del mundo real utilizar para guardar un estado de un selecto menú desplegable
$(function(){
$("select[name=somthing]").change(function(e) {
$.setCookie("selectThis", $(this).val());
});
// And to use ...
if ($.getCookie("selectThis")) $("select[name=somthing]").val($.getCookie("selectThis")).change();
});
Me encanta esta solución. Fácil de implementar y maneja mis objetos perfectos – PhillyNJ
Impresionante, trabajó como un encanto – andypotter
Intente habilitar Mod_Sec para su dominio, o pedir a su empresa de alojamiento para que pueda. Espero que esto ayude.
El mismo problema ocurrió en nuestra instalación de Drupal 7. Fue causado, si entiendo correctamente, por la configuración de ModSecurity en cPanel bloqueando el archivo. Ver http://forums.cpanel.net/f5/mod-security-blocking-jquery-cookie-javascript-drupal-installation-191002.html
He estado usando este código -
if($.cookie('siteLayout') != undefined){
if($.cookie('siteLayout') == 'compact')
$(settings.bodyElem).addClass('container');
}
y funciona bien. Pero yo estaba en necesidad de usar otra versión de jQuery en una página específica en la versión 1.7.2 fue pero fue en realidad el uso 1.10.2 Después de uso múltiple versión de jQuery tengo este error -
TypeError: $.cookie is not a function
Luego utiliza jQuery.cookie
en lugar de $.cookie
y funciona. Espero, esto también ayudará;)
Para mí, el problema se solucionó después de descargar la última versión de jquery.cookie js
Básicamente puede haber varias razones para este problema.
<script src="js/jquery.mobile-1.4.5.min.js"></script>
<script src="js/jquery.cookie.js"></script>
la primera plugin debe ser juqery.js y el segundo plugin es cookie.js
AFAIK, 'cookie' es un plugin jQuery. ¿Estás cargando ese complemento? –
Esto puede suceder incluso si su biblioteca 'jquery' se carga dos veces. –