当我尝试加载使用 jquery 的页面时,当遇到以下行时:
if ($.cookie('compare') != null)
我收到错误 $.cookie is not a function。有没有人见过这个?
当我尝试加载使用 jquery 的页面时,当遇到以下行时:
if ($.cookie('compare') != null)
我收到错误 $.cookie is not a function。有没有人见过这个?
这意味着该$.cookie
插件没有包含在页面中,至少没有被调用。确保它被包含在内,并且在被使用之前被包含在内。将它包含在 jQuery 本身之后是安全的。
只是一个提示:其他几个插件依赖于 cookie 插件(但在调用它之前不一定要检查它是否存在),您可能正在使用一个。
你有jQuery cookie 插件吗?
不,但我可以向您展示如何使一个非常简单,例如......
创建一个单独的 js 文件,将其命名为您想要的名称,为了方便起见,我将其称为 jCook。
在标题中,添加 jQuery 后,添加新文件:
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="jCook.js"></script> <!-- here it is! -->
下面是放在文件中的简单代码:
(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);
如果你做错了什么,try catch 和什么不仅有助于确保你得到“错误”的回报,而且真的不应该成为一个问题。使用代码很容易...
在您的页面上,您的加载代码或其他任何内容只需执行以下操作:
$.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();
});
基本上,这个问题可能有多种原因。
尝试为您的域启用 Mod_Sec,或要求您的托管公司启用它。希望这可以帮助。