2017-02-12 104 views
1

目前,我正在使用以下鏈接中的指南來確定如何構建選項卡(http://www.w3schools.com/howto/howto_js_tabs.asp)。在按鈕上更改選項卡單擊

 function openTab(evt, tabName) { 
     var i, tabcontent, tablinks; 
     tabcontent = document.getElementsByClassName("tabcontent"); 
     for (i = 0; i < tabcontent.length; i++) { 
      tabcontent[i].style.display = "none"; 
     } 
     tablinks = document.getElementsByClassName("tablinks"); 
     for (i = 0; i < tablinks.length; i++) { 
      tablinks[i].className = tablinks[i].className.replace(" active", ""); 
     } 
     document.getElementById(tabName).style.display = "block"; 
     evt.currentTarget.className += " active"; 
    } 

    // Get the element with id="defaultOpen" and click on it 
    document.getElementById("defaultOpen").click(); 

我想更改按下按鈕時顯示的選項卡。因此,在JavaScript中的eventListener代碼:

 document.getElementById("btn_click").addEventListener("click", function() { 
      openTab("click", "tab2"); 
    } 

這給了我「點擊」,因爲EVT是未定義的。將不勝感激在如何定義參數evt的任何幫助來改變標籤按下按鈕(一個JavaScript soln會更好)。

回答

2

您需要通過實際點擊事件,像這樣:

document.getElementById("btn_click").addEventListener("click", function(e){ 
    openTab(e, "tab2"); 
}) 

另外,作爲一個一般的規則:儘量避免W3Schools的是瘟疫。質量總體非常低。最好的辦法就是搜索stackoverflow來解決特定問題的解決方案,並使用mozilla來引用DOM相關的所有東西。

2

就像你在w3schools網站上說的那樣,你只需按下按鈕就可以運行這段代碼。

function openCity(evt, cityName) { 
    var i, tabcontent, tablinks; 
    tabcontent = document.getElementsByClassName("tabcontent"); 
    for (i = 0; i < tabcontent.length; i++) { 
     tabcontent[i].style.display = "none"; 
    } 
    tablinks = document.getElementsByClassName("tablinks"); 
    for (i = 0; i < tablinks.length; i++) { 
     tablinks[i].className = tablinks[i].className.replace(" active", ""); 
    } 
    document.getElementById(cityName).style.display = "block"; 
    evt.currentTarget.className += " active"; 
} 

這裏是HTML和JS:http://www.w3schools.com/howto/tryit.asp?filename=tryhow_js_tabs

希望這有助於!

相關問題