我有一个cookie值:clickotV
我有多个具有相同类“t”的href:
<a href="link1.html" class="t">link1</a>
<a href="link2.html" class="t">link2</a>
<a href="link2.html" class="t"><img src="image2.jpg" /></a>
当cookie值为1时:
我必须用out.php替换所有类型为“t”的href并添加目标_blank
所以我这样做:
$(document).ready(function(){ if($.cookie('clickotV')==1){ $("a.t").attr("href", "/out.php"); $("a.t").attr("target", "_blank"); } });
但是我必须在用户点击替换后的链接(out.php)后替换链接原点(不含_blank
)
我该怎么做?
答案 0 :(得分:0)
如果你需要记住数据,那么你必须存储它,幸运的是,jQuery为此目的有.data()
命令。
您将遇到的主要问题是在点击后让href
更改。您可以绑定click事件,设置短暂超时以更改值,并在默认操作后取消绑定click事件。或者尝试在javascript中打开页面,但这通常会被阻止。
编辑:改为在第一次点击时重置所有链接。
$(document).ready(function() {
if ($.cookie('clickotV') == 1) {
$('a.t').each(function() {
var self = $(this);
self.data('old-href', self.attr('href'))
.attr({ 'href': '/out.php',
'target': '_blank' });
// Timeout - option 1
self.click(function() {
setTimeout(function() {
$('a.t').each(function() {
$(this).attr('href', $(this).data('old-href')).unbind('click');
});
}, 10);
// passthrough for default action
return true;
});
// JS new-window - option 2
self.click(function() {
var newWindow = window.open(self.attr('href'), '_blank');
$('a.t').each(function() {
$(this).attr('href', $(this).data('old-href')).unbind('click');
});
newWindow.focus();
return false;
});
});
}
});