Как мне создавать вкладки в Pug - PullRequest
0 голосов
/ 04 декабря 2018

У меня есть приложение Node / Express в Visual Studio, и я хочу создавать вкладки, поэтому при нажатии на вкладку отображается содержимое ниже.Дело в том, что я использую конвертер HTML -> Pug (я очень новичок в Pug), поэтому я не удивлюсь, если что-то там будет не так.Ниже приведен мой код, но ничего не отображается, и когда я нажимаю на вкладку, он лишь слегка меняет цвет (отображается на вкладке Токио), но не показывает никакого содержимого.

enter image description here

Вот что у меня есть в моем index.pug:

extends layout

    block content
      doctype html
      html(lang="en")
        head
          meta(charset='utf-8')
          meta(name='viewport' content='width=device-width, initial-scale=1')
        section
          nav
            ul
              li.title Study Bot
              li.robot 
                img(src='/images/robot-face.jpg' alt='Robot face' width='130px')
          article
        footer
          // Tab links
          .tab
            button.tablinks(onclick="openCity(event, 'London')") London
            button.tablinks(onclick="openCity(event, 'Paris')") Paris
            button.tablinks(onclick="openCity(event, 'Tokyo')") Tokyo
          // Tab content
          #London.tabcontent
            h3 London
            p London is the capital city of England.
          #Paris.tabcontent
            h3 Paris
            p Paris is the capital of France.
          #Tokyo.tabcontent
            iframe#encyclopedia-window(src='https://en.wikipedia.org/wiki/')

В моем main.css (соответствующие части):

footer {
    background-color: #666;
    height: 500px;
    padding: 10px;
    text-align: center;
    font-size: 35px;
    color: white;
}
.tab {
    overflow: hidden;
    border: 1px solid #ccc;
    background-color: #f1f1f1;
}

/* Style the buttons inside the tab */
.tab button {
    background-color: inherit;
    float: left;
    border: none;
    outline: none;
    cursor: pointer;
    padding: 14px 16px;
    transition: 0.3s;
    font-size: 17px;
}

/* Change background color of buttons on hover */
.tab button:hover {
    background-color: #ddd;
}

/* Create an active/current tablink class */
.tab button.active {
    background-color: #ccc;
}

/* Style the tab content */
.tabcontent {
    display: none;initial-letter
    padding: 6px 12px;
    border: 1px solid #ccc;
    border-top: none;
}

#encyclopedia-window {
    position: relative;
    margin-top: 25px;
    height: 90%;
    width: 95%;
}

Также этопо моему index.js:

/* Clickable tabs */
    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";
}

1 Ответ

0 голосов
/ 05 декабря 2018

Это было удивительно просто.Мне нужно было только включить ссылку на мой сценарий в файл index.js в конце моего файла index.pug, где мне нужно вызвать функцию, используемую в этом разделе.

Поэтому я добавил:

script
  include ../routes/index.js

Вот в контексте файла index.pug:

extends layout

block content

  doctype html
  html(lang="en")
    head
      meta(charset='utf-8')
      meta(name='viewport' content='width=device-width, initial-scale=1')
    section
      nav
        ul
          li.title Study Bot
          li.robot 
            img(src='/images/robot-face.jpg' alt='Robot face' width='130px')
      article
    footer
      // Tab links
      .tab
        button.tablinks(onclick="openCity(event, 'London')") London
        button.tablinks(onclick="openCity(event, 'Paris')") Paris
        button.tablinks(onclick="openCity(event, 'Tokyo')") Tokyo
      // Tab content
      #London.tabcontent
        h3 London
        p London is the capital city of England.
      #Paris.tabcontent
        h3 Paris
        p Paris is the capital of France.
      #Tokyo.tabcontent
        iframe#encyclopedia-window(src='https://en.wikipedia.org/wiki/')
      script
        include ../routes/index.js
...