我有一個非常基本的jQuery選項卡設置。一切工作正常,但我需要一個在URL中的散列來指定活動標籤,所以我添加了一個條件來檢查散列。現在,當頁面加載時,它實際上是激活錨點並將頁面向下移動。爲什麼不是「返回假」;加工?即使點擊函數返回false,jQuery click()仍然會激活錨點
$(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選擇中AA變量,它工作正常,假設位置哈希值不匹配,我點擊哈希(奇怪,我知道...)
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 ...
你可以做'$( 「選項卡的」)。單擊('而不是做'點擊()'內'每()'的方式 – m90 2012-03-14 14:35:22
是的,謝謝。我已刪除它(並提出了一些其他優化) – 2012-03-14 15:12:48