我想在用户点击链接时设置Cookie值。 我使用以下代码:
<script src="http://code.jquery.com/jquery-1.7.2.min.js"></script>
<script src="../../Scripts/jquery.cookie.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function () {
function changeLang(lang) {
$.cookie('myCulture', lang);
window.location.reload();
return false;
}
});
</script>
HTML
<a href="#" onclick="changeLang('da-DK')"><img src="../../Content/images/danishFlag.png" height="35px" width="35px"/></a>
<a href="#" onclick="changeLang('sv-SE')"><img src="../../Content/images/swedishFlag.png" height="35px" width="35px"/></a>
它看起来非常简单,但是当我点击链接时,浏览器中出现错误。 它说。
ReferenceError: changeLang is not defined
changeLang("da-DK");
我在哪里做错了?
答案 0 :(得分:2)
在jquery块之外定义函数
$(document).ready(function () {
});
function changeLang(lang) {
$.cookie('myCulture', lang);
window.location.reload();
return false;
}
答案 1 :(得分:2)
您正在文档就绪范围内定义函数,因此它不是全局的,因此在全局范围内不可用
通过删除var声明或使用window.changeLang = function
将其定义为全局 $(document).ready(function () {
changeLang = function(lang) {
document.cookie = 'myCulture' + lang;
window.location.reload();
return false;
}
});
答案 2 :(得分:0)
请不要像这样在html中附加js函数。 你正在使用jquery所以这样做:
$(document).ready(function () {
function changeLang() {
$.cookie('myCulture', $(this).data('lang'));
window.location.reload();
return false;
}
$('.link').on('click', changeLang);
});
然后在html:
<a href="#" data-lang="da-DK">...</a>
答案 3 :(得分:0)
尝试将ChangeLang功能移动到Document Ready部分之外。 此外,如果使用Firebug在FireFox中运行,您可以尝试直接从控制台执行该功能。
祝你好运答案 4 :(得分:0)
$(document).ready(function () {
});
function changeLang(lang) {
document.cookie = 'myCulture=' + lang;
window.location.reload();
return false;
}
这对你有用。