簡體   English   中英

帶有Rails部分的JavaScript

[英]JavaScript with rails partial

我正在一個網站上工作,但遇到了一個非常奇怪的錯誤,似乎無法弄清。 我有一張桌子,桌子的每一行中都有一列帶有按鈕的列。 單擊該按鈕時,將彈出一個工具提示。 該表是從局部渲染的。 現在,我遇到的問題是,除非頁面上沒有表格中沒有的其他圖標,否則不會彈出表格中圖標的工具提示。 所以這是我渲染部分代碼的代碼(這不會在表格上顯示工具提示):

<div id="mainPage">
  ...
  <section class="fluid">
    <%= render "all_page_graphs" %>
  </section>
  ...
</div>

這是部分代碼:

<i class="filter-icon os blue" data-filter-name="GFilter">
  <div class="tooltip-container">
    <div class="tooltip-tail top"></div>
    <div class="tooltip top clearfix center">
     None
    </div>
  </div>
</i>

如果我這樣渲染我的桌子:

<div id="mainPage">
  ...
  <section class="fluid">
    <%= render "all_page_graphs" %>
  </section>
  ...
</div>
<i class="filter-icon os blue" data-filter-name="GFilter">

單擊表格中的按鈕時,將顯示工具提示。

我認為我已經將問題隔離在javascript中。 當工具提示在圖表中起作用時,我命中了以下代碼行:

function FilterTooltips(){
  "use strict";

  if ($(".filter-icon").length == 0)
    return;

  var openFilter = false;
  var $lastFilterOpen = null;

  //hit this function when the tool tip works,
  //but I don't hit it when the tool tip won't
  //load.
  $('body').click(function(e) {
    //do stuff
  }];

我認為問題與$('body')並且應該在從局部渲染的表中顯示工具提示正在加載的事實。 任何幫助將不勝感激。

代表團

雖然我沒有直接回答您的問題,但我認為問題可能Javascript委托有關

$(document).on("click", ".tooltip-tail top", function(){
    ...
});

我知道您已經設置好了-我將對其進行優化以使用上述代碼。 區別在於,如果您使用上面的代碼,則本質上是允許您通過文檔/正文將“ click”事件綁定到特定元素

你必須記住,JavaScript的作品與DOM -這意味着它不能告訴如何頁面已經呈現,只知道它有一定的因素。 此外,這些元素需要在load -如果您目前沒有這些元素,JS將無法綁定到它們

希望它能為您提供更多概述-很抱歉,我無法再提供幫助!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM