.bind()无法设置cookie
.bind() not working to set cookie
我有一个设置cookie的函数,我在一些链接上设置了.bind(),这样它们在点击时就会触发cookie函数。现在,当点击它们时,没有设置cookie。我花了好几个小时才弄明白。
<script type="text/javascript"> function createCookie(name,value,days) {
if (days) {
var date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
var expires = ";
expires=" + date.toGMTString();
}
else {
var expires = "";
}
document.cookie = name + "=" + value + expires + "; path=/";
}
$("a#en").bind("click", function () {
createCookie('TR_LNG', 'en', 90);
});
$("a#fr").bind("click", function () {
createCookie('TR_LNG', 'fr', 90);
});
$("a#de").bind("click", function () {
createCookie('TR_LNG', 'de', 90);
});
$("a#ja").bind("click", function () {
createCookie('TR_LNG', 'ja', 90);
});
$("a#pl").bind("click", function () {
createCookie('TR_LNG', 'pl', 90);
});
$("a#es").bind("click", function () {
createCookie('TR_LNG', 'es', 90);
});
</script>
HTML
<div id="langselectsplash" class="langselectsplash">
<div id="select">
<img src="http://mysite.org/wp-content/uploads/2012/08/sarvalogo2.png"
/>
<p>
<style>
#tr_setdeflang {
display:none;
}
</style>
<div class="no_translate transposh_flags">
<a id="en" href="/about/" class="tr_active">English</a>
<a id="fr" href="/fr/about/">Français</a>
<a id="de" href="/de/about/">Deutsch</a>
<a id="ja" href="/ja/about/">日本語</a>
<a id="pl" href="/pl/about/">Polski</a>
<a id="es" href="/es/about/">Español</a>
</div>
</p>
</div>
</div>
<div id="langsplashfade"></div>
输出上述内容的PHP代码:
<?php
echo "<script type='"text/javascript'"> function createCookie(name,value,days) { 'nif (days) { 'nvar date = new Date();'n date.setTime(date.getTime()+(days*24*60*60*1000));'n var expires = '";'n expires='"+date.toGMTString();'n} else { 'nvar expires = '"'";}document.cookie = name+'"='"+value+expires+'"; path=/'";}'n";
foreach ($args as $langrecord) {
echo "$('"a#{$langrecord['isocode']}'").bind('"click'", function() {createCookie('TR_LNG','{$langrecord['isocode']}',90);});'n";
}
echo "</script>";
?>
<?php
echo " <div id='"langselectsplash'" class='"langselectsplash'"><div id='"select'"><img src='"http://mysite.org/wp-content/uploads/2012/08/sarvalogo2.png'" /><p>";
?>
<?php
echo "<style>#tr_setdeflang{display:none;}</style><div class='"" . NO_TRANSLATE_CLASS . " transposh_flags'" >";
foreach ($args as $langrecord) {
echo "<a id='"{$langrecord['isocode']}'" href='"{$langrecord['url']}'"" . ($langrecord['active'] ? ' class="tr_active"' : '') . '>' . "{$langrecord['langorig']}</a>";
}
echo "</div>";
?>
您需要将绑定事件的代码放在DOM就绪事件上:
$(document).ready(function(){
//Your code
});
或
$(function(){
//Your code
});
查看日志:
SyntaxError: unterminated string literal
var expires = ";
你有一个错误,我想你想要:
function createCookie(name,value,days) {
var expires = "";
if (days) {
var date = new Date();
date.setTime(date.getTime()+(days*24*60*60*1000));
expires = ";expires=" +date.toGMTString();
}
document.cookie = name + "=" + value + expires + ";path=/";
}
因为你在一行上打开一个字符串,但现在永远不会关闭它。代码可以重写为:
$("#en, #fr, #de, #ja, #pl, #es").bind("click", function() {
createCookie('TR_LNG', this.id, 90);
});
或者更好的是在这些锚链接上添加一个css类,并将其作为目标(例如,对于您当前的网站:$(".transposh_flags a")
)。
相关文章:
- 在jquery中为显示/隐藏设置cookie
- 如何为后台更改程序代码设置cookie
- 如何使用单选按钮设置cookie值
- PhantomJS(vs nightwatch.js)设置cookie错误
- 未使用Javascript在IE中设置Cookie
- 如何使用Ajax/jQuery设置cookie
- 如何在Internet Explorer中使用javascript设置cookie
- 在Node.js中设置cookie值
- Javascript-设置cookie并拉入ID
- 为什么新js Fetch标准禁止响应头名称为'设置Cookie 1/2'
- 设置文档位置href会阻止设置cookie
- .bind()无法设置cookie
- 单击链接时设置cookie
- 我无法在歌剧和互联网浏览器中设置cookie
- 在相对于用户当前 URL 路径的不同路径中设置 Cookie
- 如何在 Javascript 中设置 cookie 的到期日期
- 使用Javascript设置cookie
- 无法使用jquery设置cookie
- Javascript代码检查:尝试设置cookie时出现令牌错误
- 仅当onclick和隐藏消息时设置cookie