TLDR 点击链接时,我想指定一个名为instrument的cookie,并点击链接上的文本值。
使用Jquery.1.4.2.min.js,Jquery.cookie.1.0.js
我想在点击链接时创建一个cookie(将始终链接到“page.html”)。
乐器名称
TEXT的值
到目前为止,我正在尝试使用:
<script type="text/javascript" src="scripts/jquery-1.4.2-min.js"></script>
<script type="text/javascript" src="scripts/jquery.cookie-1.0.js"></script>
链接1:
<a href="page.html">link1</a>
链路2:
<a href="page.html">link2</a>
脚本:
$('a[href=page.html]').click(function()
{
var name = 'instrument';
var value = $(this).text();
$.cookie(name, value, { expires: 365 });
});
当我点击链接时,它只是加载链接而没有设置cookie。 使用firebug,firecookie,firequery进行调试。没有找到仪器的cookie或沿线的任何东西。 Onload我会点击
“<a href="page.html">projects</a>
”但不是
“$.cookie(name, value, { expires: 365 });
”。
即使使用以下内容:(感谢Sarfraz)
$('a[href="page.html"]').click(function(e)
{
// prevent default action
e.preventDefault();
var name = 'instrument';
// get link text
var value = $(this).text();
// set cookie
$.cookie(name, value, { expires: 365 });
// now go to link's location
document.location.href = $(this).attr('href');
});
仍然无法创建Cookie。
如果我在$.cookie~
上添加一个断点,即使单击其中一个链接也没有点击
断点也不是document.location.href~.
对于扎克:
预渲染 -
<script type="text/javascript" src="http://localhost/tree"></script>
渲染后 -
"<div class="dtree">
<div class="dTreeNode"><img alt="" src="Images/base.png" id="id0"><a onclick="javascript: d.s(0);" href="home" class="node" id="sd0">Home</a></div>"
答案 0 :(得分:2)
这是hackish,但它对我有用。
$(document).ready( function() {
$('a.cookier').each( function() {
// Kill the link's link feature.
_href = $(this).attr('href');
$(this).attr("rel", _href).attr("href", "javascript:void(0);");
});
$('a.cookier').click(function() {
var name = 'instrument';
var value = $(this).text();
$.cookie(name, value, { expires: 365 });
// Go places
document.location.href = $(this).attr('rel');
});
});
我的标记看起来像这样:
<a class="cookier" href="hrrrngh.html">Shazam!</a>
我使用类似的方法在使用AJAX的页面上“取消链接”我的链接,但必须优雅地降级。
注意:您可能希望选择一个比“cookier”更高级的分类。
编辑:
您可以选择其中任何一个<a>
,选择不选择页面上的其他内容。
.dtree img + a
.dTreeNode > a
.dTreeNode a.node
.dTreeNode a[onclick=|javascript].node
答案 1 :(得分:1)
var value = $(this);
将jQuery对象赋值给value。使用
var value = $(this).text();
或
var value = $(this).attr('href');
答案 2 :(得分:0)
试试这个:
$('a[href="page.html"]').click(function(e)
{
// prevent default action
e.preventDefault();
var name = 'instrument';
// get link text
var value = $(this).text();
// set cookie
$.cookie(name, value, { expires: 365 });
// now go to link's location
document.location.href = $(this).attr('href');
});
答案 3 :(得分:0)
使用上面Zack的答案,我改变了元素标签。 唯一的问题是它会为我想要或不想要的链接设置任何链接的cookie,但它设置cookie并在需要的地方工作。 如果有更清洁的方法,我们将不胜感激。
$(document).ready( function() {
$('a[href="page.html"]').each( function() {
// Kill the link's link feature.
_href = $(this).attr('href');
$(this).attr("rel", _href).attr("href", "javascript:void(0);");
});
$('a').click(function() {
var name = 'instrument';
var value = $(this).text();
$.cookie(name, value, { expires: 365 });
// Go places
document.location.href = $(this).attr('rel');
});
});
非常感谢Sarfraz和Zack提供的所有帮助,至少我现在有一些有用的东西^^