我有一个非常基本的jQuery标签设置。一切工作正常,但是我需要在URL中使用散列来指定活动选项卡,因此我添加了一个条件来检查散列。现在,当页面加载时,它实际上是在激活锚点并向下移动页面。为什么不返回“ false”?工作吗
$(document).ready( function() {
$(".tabs a").click(function() {
$(".tabs a").removeClass("active");
$(".tabs a").addClass("button secondary");
$(this).attr("class","button active");
var href = $(this).attr("href");
$(href).parent().find("> .active").removeClass("active");
$(href).addClass("active");
return false;
});
if(window.location.hash) {
$(".tabs a[href$='"+window.location.hash+"']").click();
} else {
$(".tabs a:eq(0)").click(); //default to first tab
}
});
**
以下是一些更新:
**
如果我只是输入实际的哈希值,而不是将其从window.location.hash中提取出来,那么它会完美地工作。
$(".tabs a[href$='#Contact2']").click();
单击不同的选项卡,仅在页面加载并基于哈希值自动单击选项卡时,才切换页面。
如果我放置条件条件,然后在jquery选择器中不使用变量的情况下自动单击,则假定位置哈希值与我单击的哈希值不匹配(奇怪,我知道...),效果很好
if(window.location.hash === "#Contact2") {
$(".tabs a[href$='#Contact4']").triggerHandler("click");
} else {
$(".tabs a:eq(0)").click(); //default to first tab
}
这对我来说真的没有多大意义。似乎唯一的问题是在jquery选择器中使用window.location.hash ...
最佳答案
也许这段代码也可以使您的工作:
$(".tabs a").click(function(){
// your code
return false;
});
另一种方法是:
$(".tabs a").click(function(e) {
e.preventDefault();
// your code
});
关于javascript - jQuery click()仍激活 anchor ,即使click函数返回false,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9703944/