[英]PHP Page name variable + jQuery
在實現jQuery頁內標簽導航系統后,我遇到了一個問題,該問題在於如何重新定義我的頁面名稱,以便可以在主導航中將其設置為“活動”樣式。
我用:
<?php $var_page_name = 'example.php'; ?>
定義我網站上的每個頁面名稱,並用正確的頁面名稱替換示例。
然后,我使用以下代碼在導航中設置“活動”頁面的樣式,並使用CSS定義活動類:
<?php global $var_page_name; ?>
<ul>
<li><a<? if($var_page_name == 'index.php') print ' class="active"'; ?> href="index.php">web design</a></li>
</ul>
效果很好。 我為導航添加了頁內jQuery選項卡解決方案。 這也有效。
但是,在單擊選項卡之一並轉到新的內容div之后,頁面名稱似乎已更改,因此正確的主導航項不再被認為是活動的。 網址為http://www.example.com/index.php# ,但是如果我將活動頁面導航變量修改為:
<a<? if($var_page_name == 'index.php' || $var_page_name == 'index.php#' ) print ' class="active"'; ?>
或嘗試使用標簽所使用的div ID:
<a<? if($var_page_name == 'index.php' || $var_page_name == 'index.php#content_2' ) print ' class="active"'; ?>
它不能解決問題。 有什么建議么?
這是您的tab腳本中的錯誤。
當您單擊選項卡時,即使<a>
不是選項卡,它也會從頂部導航欄中的<a>
中刪除“活動”類。
更改行:
// switch all tabs off
$(".active").removeClass("active");
至:
$(".tabs .active").removeClass("active");
或類似於僅從選項卡中刪除“活動”類而不是頁面中所有元素的類。
<?php $var_page_name = 'example.php'; ?>
錯了 使用類似
<?php
$exploded = explode($_SERVER['REQUEST_URI']);
<a href="/page/" class="<?php echo ($exploded[1] == "page") ? "active" : ""; ?>">Page</a>
請記住,默認情況下不會將哈希發送到服務器
好吧,我認為問題與頁面中的jquery代碼有關,而不是與PHP代碼有關。 檢查js標頭代碼,我發現了這一點:
// When a link is clicked
$("a.tab").click(function () {
// switch all tabs off
$(".active").removeClass("active");
...
});
選擇器“ a.tab”上的單擊綁定將清除整個頁面中的所有“ .active”類,包括“ nav”部分中的類(位於選項卡上方)。
嘗試更改此行:
$(".active").removeClass("active");
對此:
$("#tabbed_box_1").find(".active").removeClass("active");
那應該做。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.