簡體   English   中英

將javascript移至素材資源文件夾

[英]moving javascript into assets folder

我試圖將我的javascipt從其工作所在的視圖頁面移至asset / javascripts文件。 但是,當我采取行動時,javascript將不再執行。 我不確定為什么嗎?

 $('.dropbtn').click(function(){ if($(this).hasClass("active") ) { $(this).parent(".dropdown").find('.dropdown-content').removeClass('show'); $(this).removeClass('active'); } else{ $('.dropdown-content').removeClass('show'); $(this).parent(".dropdown").find('.dropdown-content').addClass('show'); $(this).addClass('active'); } }); 

如果您的Javascript文件包含在資產管道中,它將被串聯,縮小並預處理為一個大的.js文件,默認情況下,該文件包含在布局的<head> 到瀏覽器閱讀此文件時,尚未加載與.dropbtn類關聯的dom元素,因此從未添加click事件偵聽器。

解決方案是將代碼包裝在一個函數中,該函數在文檔加載后即被調用:

$(document).ready(function(){
  // your code goes here.
});

但是,如果您使用的是turbolinks(默認情況下在rails中包含),則需要使用:

$(document).on('turbolinks:load', function(){
  // your code goes here.
});

這樣做的原因是,一旦加載了文檔,turbolinks就會對其進行更新,而不是在每次請求后重新加載它,因此$(document).ready()僅會在'turbolinks:load'每次加載內容時觸發一次。通過您應用中的turbolink。

暫無
暫無

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

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