Rails 7 mit Turbo/Hotwire. Ich verwende Code wieder, der aus einem alten Projekt aus dem Jahr 2018 kopiert wurde. Dieser Code/diese jQuery ist für das Informations-Popup:
$(document).ready(function() { $('#info').hover(function() { $('#popup').show(); }, function() { $('#popup').hide(); }); });
Nachdem ich das Javascript neu geschrieben habe (richtig?), teste ich gerade Folgendes – ohne Erfolg:
$(document).addEventListener("DOMContentLoaded", function() { $('#info_1').onmouseover(function() { $('#popup_1').show(); }, function() { $('#popup_1').hide(); }); });
Ich habe #info_1
/ id=info_1
在一個(gè) div
中,彈出 #popup_1
/ id=popup_1
在另一個(gè) div
direkt unten. p>
Ich habe die Verwendung getestet, indem ich das Javascript in das app/javascript/custom/menu.js
文件中,以及在視圖頁(yè)面上的 -Tag eingefügt habe.
Wie soll ich damit umgehen?
Danke
$() 意味著您仍在使用 jquery,您沒(méi)有將其轉(zhuǎn)換為純 JavaScript,但您已將其轉(zhuǎn)換為損壞的 jquery。使用 $().someChained 函數(shù)的每一行都需要替換。例如:
$(文檔).addEventListener
應(yīng)該是
文檔.addEventListener
這是您想要的要點(diǎn),有一個(gè)注釋要注意 DOMContentLoaded,如果它在偵聽(tīng)器綁定之前加載,它將永遠(yuǎn)不會(huì)觸發(fā)。
document.addEventListener('DOMContentLoaded', function() { var info = document.getElementById('info'); var popup = document.getElementById('popup'); info.addEventListener('mouseenter', function() { popup.style.display = 'block'; }); info.addEventListener('mouseleave', function() { popup.style.display = 'none'; }); });
旁注,如果您需要用普通的 js 替換一個(gè)不平凡的項(xiàng)目 jquery,并且您根本不熟悉該語(yǔ)言,那么這將是一項(xiàng)非常非常困難的任務(wù)。