2016-04-13 50 views
0

這裏是我的問題:如何打開頁面並根據ID更改元素的活動類?

我的客戶有一個網站:http://d2p.wisc.edu

我們要創造出打開一個新頁面,然後拉開該網頁上的特定標籤的鏈接。

Example: 
<a href="https://d2p.wisc.edu/entrepreneur-lean-start-ups/">How mentors are involved</a> 

當然,這個錨標記只是打開我們試圖引導訪問者的頁面。但是,我們仍然想要打開頁面上的'導師'選項卡。

我的第一個傾向是添加標籤的ID以URL

Example: 
<a href="https://d2p.wisc.edu/entrepreneur-lean-start-ups/#1437586970870-a9895403-19ee">How mentors are invlolved</a> 

Unfortuntatly元素被設置方式,他們使用的課堂作業,並點擊一個單獨的標籤時,他們要麼顯示或顯示基於在「.vc_active」類上。所以這個方法當前只是將視口拉到頁面上的隱藏元素。

爲了解決這個問題,我們正在編寫一個腳本,將URL與面板ID相匹配,並將「.vc_active」移動到匹配元素。

<script type="text/javascript"> 
jQuery(window).load(function() { 
    if(location.hash) { 
     var panelRef = (window.location.hash.substring(1)); 
     var aRef = (window.location.hash); 
     var panelID = jQuery(".vc_tta-panel").attr("id"); 
     var aHref = jQuery(".vc_tta-tab a").attr("href"); 
     console.log(panelRef); 
     console.log(aRef); 
     console.log(panelID); 
     console.log(aHref); 
     if(panelID == panelRef) { 
       jQuery(".vc_tta-tab").removeClass("vc_active"); 
       jQuery(".vc_tta-panel").removeClass("vc_active"); 
       jQuery(a).attr("href", "aRef").parent(".vc_tta-tab").addClass("vc_active"); 
       console.log("It Works!"); 
     } 
    };  
}); 

問題,我們似乎有是,我們不知道應該如何來看待所有所有的面板的ID的,並選擇我們想要的。

我接近這個正確的方式,還是有更簡單的方法來做到這一點?

回答

0

我通常會做一些事情,在頁面加載時存儲URL,將其拆分並與if語句匹配。

如果id匹配:「#1437586970870-a9895403-19ee」,則向包含「導師」的li添加一個「.vc_active」類。

0

你有沒有嘗試過的東西多一點簡單的像這樣:

<script type="text/javascript"> 
jQuery(window).load(function() { 
    if(location.hash) { 
     var panelRef = (window.location.hash.substring(1)); 
     var aRef = (window.location.hash); 
     console.log(panelRef); 
     console.log(aRef); 
     jQuery("a[href='" + aRef + "']").parent(".vc_tta-tab").siblings(".vc_tta-tab").removeClass("vc_active"); 
     jQuery("#" + panelRef).siblings(".vc_tta-panel").removeClass("vc_active"); 
     jQuery("a[href='" + aRef + "']").parent(".vc_tta-tab").addClass("vc_active"); 
     jQuery("#" + panelRef).addClass("vc_active"); 
     console.log("It Works!"); 
    };  
}); 
</script> 

讓我知道你在想什麼!

+0

與此相關的兩個問題是,.vc_active會從頁面上的所有其他元素中移除,並且視口仍然在元素下方被壓下。 –

+0

嘿,我編輯了我的答案,讓我知道如果這樣更好。仍在研究視圖端口問題的解決方案。 –