【问题标题】:How i use javascript and css files on a innerHTML我如何在 innerHTML 上使用 javascript 和 css 文件
【发布时间】:2020-11-20 16:01:21
【问题描述】:

我正在使用 node 开发一个 web 应用程序,但我遇到了问题。我想用下面的代码做的是在点击“RESERVAR”并放入我的HTML(.ejs)文件后加载后端的信息。问题是 HTML 代码在 HTML 文件上运行良好,但是当我在 js 文件上传输它以添加后端信息时,代码没有按我的预期运行,因为它需要一些 js 和 CSS 文件才能运行。因为我的js文件不支持;

 <link rel="stylesheet" type="text/css" href="../css/timedropper.css">
      <script src="../js/back-comunication.js"></script>   

它似乎没有正确加载输入。

我的应用网站:https://labmanagersite.herokuapp.com/

下面是我的 js 文件中的代码,我正在尝试在我的 HTML 文件中插入 HTML 段。

async function openReserva(id) {
  let endereco = `https://lab-manager.herokuapp.com/laboratorio/${id}`;
  const response = await fetch(endereco);
  const user = await response.json();
  document.querySelector(".reserva").innerHTML = `
      <div class="reserva-container">
      <div class="reserva-header">
        <h1>${user[0].nome}</h1>
        <p>${user[0].descricao} / ${user[0].capacidade} computadores</p>
        <i class="far fa-times-circle"></i>
      </div>
      <div class="reserva-inputs">                  
        <div class="onoffswitch">
            <input type="checkbox" name="onoffswitch" class="onoffswitch-checkbox" id="myonoffswitch" tabindex="0" checked>
            <label class="onoffswitch-label" for="myonoffswitch">
                <span class="onoffswitch-inner"></span>
                <span class="onoffswitch-switch"></span>
            </label>
        </div>            
        <div class="input-containers data-container"  style="max-width: 100% !important;">
            <div class="icon">
              <i class="far fa-calendar-alt"></i>
            </div>   
            <input id="input-data2" class="input-data" value="0"   
              type="text" data-lang="pt" data-large-mode="true" 
              data-large-default="true" data-lock="from" 
              data-translate-mode="true" data-theme="my-style" 
              data-format="d/m/Y" data-max-year="2050" data-min-year="2000"/>                 
              <div class="select_mate" data-mate-select="active" id="select-date">
                  <select onclick="return false;" onchange="" onclick="return false;" id="">
                    <option value="0">Domingo</option>
                    <option value="1">Segunda</option>
                    <option value="2">Terça</option>
                    <option value="3">Quarta</option>
                    <option value="4">Quinta</option>
                    <option value="5">Sexta</option>
                    <option value="6">Sabado</option>                           
                  </select>
                  <p class="selecionado_opcion" onclick="open_select(this)"></p>
                  <span onclick="open_select(this)" class="icon_select_mate">
                    <svg fill="#FF9F2E" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
                        <path d="M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z" />
                        <path d="M0-.75h24v24H0z" fill="none" />
                    </svg>
                  </span>
                  <div class="cont_list_select_mate">
                    <ul class="cont_select_int"> </ul>
                  </div>
              </div>
        </div>
        <div class="input-containers horario-container" style="max-width: 100% !important;">
            <div class="icon">
              <i class="far fa-clock"></i>
            </div>
            <div class="select_mate" data-mate-select="active" >
              <select onclick="return false;" onchange="" onclick="return false;" id="">
                  <option value="0">01:00</option>
                  <option value="1">02:00</option>
                  <option value="2">03:00</option>
                  <option value="3">04:00</option>
                  <option value="4">05:00</option>
                  <option value="5">06:00</option>
                  <option value="6">07:00</option>
                  <option value="7">08:00</option>
                  <option value="8">09:00</option>
                  <option value="9">10:00</option>
              </select>
              <p class="selecionado_opcion" onclick="open_select(this)"></p>
              <span onclick="open_select(this)" class="icon_select_mate">
                  <svg fill="#FF9F2E" height="24" viewBox="0 0 24 24" width="24" xmlns="http://www.w3.org/2000/svg">
                    <path d="M7.41 7.84L12 12.42l4.59-4.58L18 9.25l-6 6-6-6z" />
                    <path d="M0-.75h24v24H0z" fill="none" />
                  </svg>
              </span>
              <div class="cont_list_select_mate">
                  <ul class="cont_select_int"> </ul>
              </div>
            </div>
        </div>               
      </div>            
      <div class="buttons">
        <button>Reservar</button>
      </div>                        
    </div>    
  `;
  const exit = document.querySelector(".reserva-header i");
  let reservaOpen = true;
  exit.addEventListener("click", () => {
    if (reservaOpen) {
      document.querySelector(".reserva").innerHTML = ``;
    }
  });
}

【问题讨论】:

  • 听起来好像您需要 JS 文件来加载 css 文件 - 对吗?在这种情况下,它需要执行 [link] stackoverflow.com/questions/574944/… 中给出的公认解决方案,但我可能误解了您的问题。

标签: javascript html css node.js api


【解决方案1】:

我不太明白你的问题,但是为什么不使用innerHTML,而是隐藏reserve-container div,你唯一要做的就是当用户点击时,你调用css函数来显示整个分区?使用 jquery 会是这样的。

$(".reserva").on("click", function () {
    $(".reserva-container").eq(0).css("display", "block/inline/flex/grid/...")
});

【讨论】:

  • 因为我想让 div 显示点击实验室的信息。当我单击“reservar”按钮时,我需要使用后端的信息,所以我需要使用 INNERHTML 生成这个 div。我正在这样做,但是某些动画无法正常工作,因为它取决于其他 js 文件。我不知道如何解决这个问题?
猜你喜欢
  • 1970-01-01
  • 2023-03-27
  • 2011-02-09
  • 2012-09-21
  • 2011-04-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-09-06
相关资源
最近更新 更多