我为我的网站构建了一个jquery滑块。共有3张幻灯片,每张幻灯片包含30-40张图片,链接到一个单独的页面。
我想完全删除幻灯片上未激活的href链接,然后在幻灯片处于活动状态时再次添加它们。我尝试了一些方法,例如:
$('a').click(function(e){
e.preventDefault();
});
但这只会阻止链接点击,实际上并不会将其删除。
关于我能做什么的任何建议?
我之所以这样做是因为Google不喜欢页面上超过100个内部链接,而且我几乎翻了一倍!
谢谢,Dan
答案 0 :(得分:4)
请注意谷歌会刮掉原始代码,不会注意导致js操作的代码。
你可以在dom中没有href的情况下开始,并且有类似
的东西<a data-href="url">
当图像滑动的事件发生时,您可以使用以下命令激活它:
$(this).attr('href', $(this).data('href'))
或者你可以在dom ready上实时激活它们
$('#carousel a').each(function() {
$(this).attr('href', $(this).data('href'));
});
答案 1 :(得分:1)
我没有得到你的代码,你为什么要听点击事件?
如果您不想停用它们,可以放$("a").css("display","none");
然后再将其设置回来。如果你不想完全删除html,那就是$("a").remove();
无论如何,这对你没有帮助。 Google的索引器没有启用javascript,您必须更改原始HTML。
答案 2 :(得分:1)
如果您因某些原因无法尝试,请在当前活动的图片上尝试此操作
$("active image identifier selector a").attr("href", "link to add");
$("all images selector").not("active image identifier selector").find("a").removeAttr("href")
请注意,使用removeAttr不会禁用链接,它会完全删除它,不确定那是不是你想要做什么。只是为了确认,您是否希望停用或删除链接。
e.preventDefault仅禁用链接但不删除它。
假设您有第二个图像处于活动状态并执行类似$(“图像a”)。attr(“href”,“链接添加”),您如何知道添加到该图像和图像之前的链接当它们变得活跃时,因为你几乎丢弃了href属性。
我建议的解决方案是将链接存储在像
这样的链接的数据属性中//store href in link data for each link to be deactivated
$("all images selector").not("active image identifier selector").each(function(){
var $this = $(this);
//get url of link
var url = $this.attr("href");
//store url in a data attribute for that link
$this.data("my-url", url);
$(this).removeAttr("href");
});
//get data attribute of active image and readd href attribute
$("active image identifier selector a").attr("href", $("active image identifier selector a").data("my-url"));
试试这个并告诉我这是否有帮助。 请注意,这不是最有效的方法。可能有更多优化的函数来遍历链接但是让它工作是优先的,我假设你。
干杯。
答案 3 :(得分:0)
在 href 用户中使用 javascript:void(0)将不会转到下一页,并且页面中不再使用网址。
试试这段代码:
$('a').click(function(e){
$(this).attr("href","javascript:void(0)");
})