在測試檔案中編寫的程式碼運行得非常好,我必須將其合併到主程式碼中,但進展不太順利。
基本程式碼由一個簡單的 html 檔案和一個名為「記住這一點」的按鈕組成。
它有一個名為 showRememberMenu() 的函數的 onclick。該函數創建了一個顯示在按鈕下方的選單。
下拉式選單有幾個標籤可以添加到資料中,以提醒使用者為什麼要嘗試記住它。 (我老了,我需要所有我能得到的幫助來記住東西。)
點擊按鈕,查看下拉式選單,點擊您想要的標籤,您正在查看的資料將保存在帶有該標籤的陣列中。點擊選單後它就會消失。
然後我的任務是將其放入更大的腳本中並查看它是否同樣工作......哦,也許不是。點擊選單,使用標籤儲存數據,然後......什麼?為什麼菜單還在那裡?原版一點擊就被刪除了。為什麼它不消失?
如果我點擊「退出不儲存」標籤,它仍然顯示選單。
作為用戶,我正在查看一張包含資料庫資料的卡片。單擊此按鈕是保存該資料以供以後使用的一種方法。在這裡您可以看到帶有新按鈕的卡片。
點擊該按鈕查看下拉清單並選擇與記住此資料相關的標籤...
現在對其他卡片執行相同的操作,您就擁有了完成某些任務所需的所有數據,但為什麼「&%!!! 該選單永遠不會消失?
在我沒有想法後,我聯繫了我的同事人工智慧雙子座。它給了我第一個解決方案,這正是我已經擁有的程式碼。它建議了很多事情,但沒有一個起作用。
人們相信檢查節點和元素是否存在會讓一切都好起來,但事實並非如此。
我們花了大約一個小時的時間才被告知不起作用的事情,並被告知時間問題,可能需要延遲,這確實不相關,但作為一個團隊,我們慢慢地解決了這個問題。
如果你想嘗試解決這個問題,我敢打賭你可以在更短的時間內完成。
這是有效的原始草稿代碼...
<meta charset="UTF-8"> <title>Some Javascript</title> <link rel="stylesheet" href="./someJavascript.css"> <link rel="icon" href="favicons/favicon.ico" type="image/icon type"> <div> <p>and the javascript<br> </p> <pre class="brush:php;toolbar:false">let logToConsole=true; var rowData={THId:'2', TaskName:'To climb a tree', TaskDesc:'Try using hands & feet'}; var remember=[]; function rememberProcess(remember){ if(logToConsole) console.log('RememberProcess()'); for(i=0;i<remember.length console.log of remember.length items as remember function putdataintoremember if remember.push deletemenu menulu.parentnode.removechild showremembermenu return already exists const remember_button="document.querySelector('#remember');" menuheaders="['EXIT" no save student manager author task note menulu="document.createElement('lu');" menulu.id="rememberMenu" for i="0;i<menuHeaders.length;i++){" li="document.createElement('li');" li.innertext="menuHeaders[i];" li.id="menuHeaders[i];" li.classlist.add li.addeventlistener> { //console.log('li button clicked', menuHeaders[i], rowData) if(menuHeaders[i]=='EXIT no save') {deleteMenu(menuLu);return}; putDataIntoRemember(menuHeaders[i], rowData);//[header][rowData] rememberProcess(remember);//do something with the stored data structure deleteMenu(menuLu); }) menuLu.appendChild(li); } remember_button.appendChild(menuLu); } </remember.length>
有一些CSS,但與問題無關
.remember_button { background-color: #5A5050; border: 0; border-radius: 5px; box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2); color: #fff; font-size: 12px; padding: 3px 4px; position: relative; letter-spacing: 1px; width: 100px; } /*Button goes white on hover*/ .remember_button:hover { background-color: #ffffff; color: #001F61; cursor:pointer; } .rememberLi{ background-color: #aa9595; border: 0; border-radius: 5px; box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2); color: #fff; font-size: 12px; padding: 3px 4px; position: relative; letter-spacing: 1px; width: 100px; } .rememberLi:hover { background-color: #ffffff; color: #001F61; cursor:pointer; }
以上的作品,或多或少符合我的要求。
這是一個更大系統中的版本,我不會全部發布。
卡片是動態生成的,並添加了以下程式碼以產生與原始按鈕相同類型的按鈕
<meta charset="UTF-8"> <title>Some Javascript</title> <link rel="stylesheet" href="./someJavascript.css"> <link rel="icon" href="favicons/favicon.ico" type="image/icon type"> <div> <p>and the javascript<br> </p> <pre class="brush:php;toolbar:false">let logToConsole=true; var rowData={THId:'2', TaskName:'To climb a tree', TaskDesc:'Try using hands & feet'}; var remember=[]; function rememberProcess(remember){ if(logToConsole) console.log('RememberProcess()'); for(i=0;i<remember.length console.log of remember.length items as remember function putdataintoremember if remember.push deletemenu menulu.parentnode.removechild showremembermenu return already exists const remember_button="document.querySelector('#remember');" menuheaders="['EXIT" no save student manager author task note menulu="document.createElement('lu');" menulu.id="rememberMenu" for i="0;i<menuHeaders.length;i++){" li="document.createElement('li');" li.innertext="menuHeaders[i];" li.id="menuHeaders[i];" li.classlist.add li.addeventlistener> { //console.log('li button clicked', menuHeaders[i], rowData) if(menuHeaders[i]=='EXIT no save') {deleteMenu(menuLu);return}; putDataIntoRemember(menuHeaders[i], rowData);//[header][rowData] rememberProcess(remember);//do something with the stored data structure deleteMenu(menuLu); }) menuLu.appendChild(li); } remember_button.appendChild(menuLu); } </remember.length>
其餘的 javascript 與原始程式碼幾乎相同
.remember_button { background-color: #5A5050; border: 0; border-radius: 5px; box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2); color: #fff; font-size: 12px; padding: 3px 4px; position: relative; letter-spacing: 1px; width: 100px; } /*Button goes white on hover*/ .remember_button:hover { background-color: #ffffff; color: #001F61; cursor:pointer; } .rememberLi{ background-color: #aa9595; border: 0; border-radius: 5px; box-shadow: 0 10px 10px rgba(0, 0, 0, 0.2); color: #fff; font-size: 12px; padding: 3px 4px; position: relative; letter-spacing: 1px; width: 100px; } .rememberLi:hover { background-color: #ffffff; color: #001F61; cursor:pointer; }
點擊之前的提醒
以及點擊後如何卡住
我不知道問題是什麼,Gemini 正在聽一場完全不相關的內容的講座,但艾和我終於縮小了範圍,現在看起來太簡單了。
那為什麼菜單會保留下來?
以上是Javascript 監聽器點擊誘餌的詳細內容。更多資訊請關注PHP中文網其他相關文章!

JavaScript在Web開發中的主要用途包括客戶端交互、表單驗證和異步通信。 1)通過DOM操作實現動態內容更新和用戶交互;2)在用戶提交數據前進行客戶端驗證,提高用戶體驗;3)通過AJAX技術實現與服務器的無刷新通信。

理解JavaScript引擎內部工作原理對開發者重要,因為它能幫助編寫更高效的代碼並理解性能瓶頸和優化策略。 1)引擎的工作流程包括解析、編譯和執行三個階段;2)執行過程中,引擎會進行動態優化,如內聯緩存和隱藏類;3)最佳實踐包括避免全局變量、優化循環、使用const和let,以及避免過度使用閉包。

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

Python和JavaScript在社區、庫和資源方面的對比各有優劣。 1)Python社區友好,適合初學者,但前端開發資源不如JavaScript豐富。 2)Python在數據科學和機器學習庫方面強大,JavaScript則在前端開發庫和框架上更勝一籌。 3)兩者的學習資源都豐富,但Python適合從官方文檔開始,JavaScript則以MDNWebDocs為佳。選擇應基於項目需求和個人興趣。

從C/C 轉向JavaScript需要適應動態類型、垃圾回收和異步編程等特點。 1)C/C 是靜態類型語言,需手動管理內存,而JavaScript是動態類型,垃圾回收自動處理。 2)C/C 需編譯成機器碼,JavaScript則為解釋型語言。 3)JavaScript引入閉包、原型鍊和Promise等概念,增強了靈活性和異步編程能力。

不同JavaScript引擎在解析和執行JavaScript代碼時,效果會有所不同,因為每個引擎的實現原理和優化策略各有差異。 1.詞法分析:將源碼轉換為詞法單元。 2.語法分析:生成抽象語法樹。 3.優化和編譯:通過JIT編譯器生成機器碼。 4.執行:運行機器碼。 V8引擎通過即時編譯和隱藏類優化,SpiderMonkey使用類型推斷系統,導致在相同代碼上的性能表現不同。

JavaScript在現實世界中的應用包括服務器端編程、移動應用開發和物聯網控制:1.通過Node.js實現服務器端編程,適用於高並發請求處理。 2.通過ReactNative進行移動應用開發,支持跨平台部署。 3.通過Johnny-Five庫用於物聯網設備控制,適用於硬件交互。

我使用您的日常技術工具構建了功能性的多租戶SaaS應用程序(一個Edtech應用程序),您可以做同樣的事情。 首先,什麼是多租戶SaaS應用程序? 多租戶SaaS應用程序可讓您從唱歌中為多個客戶提供服務


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

WebStorm Mac版
好用的JavaScript開發工具

記事本++7.3.1
好用且免費的程式碼編輯器

Atom編輯器mac版下載
最受歡迎的的開源編輯器

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。

SAP NetWeaver Server Adapter for Eclipse
將Eclipse與SAP NetWeaver應用伺服器整合。