Re: [問題] document.ready不設置setTimeout跑不出來

看板Web_Design作者 (I do my best)時間6年前 (2018/11/21 16:29), 6年前編輯推噓0(002)
留言2則, 2人參與, 6年前最新討論串2/2 (看更多)
更新一下現況遇到的問題 (抱歉修正一下,改到昏頭了) 這是一開始的寫法,必須判斷網址與<a>的連結是否相符,點一次<a>,就會按順序傳入 全部的<a> $(".navBar").load("./navBar.html",function() { $('nav ul li a').each(funcion(){$(this).on('click', addClassNowPage(this)); }); 但因為小弟不曉得如何傳當下選取到的<a>給addClassNowPage 故改用下面這段 $(".navBar").load("./navBar.html",function() { $('nav').on('click', function(event){ addClassNowPage(event.target) }); 這樣的寫法可以成功傳入選取到的<a> 可是因為兩個寫法觸發的事件順序不同,導致寫法2上底線無效 寫法1在點下去連結後的流程→(1).換頁進入document.ready (2).Load Html檔案 (3).觸發click事件) 寫法2在點下去連結後的流程→(1).觸發click事件 (2).換頁進入document.ready (3).Load Html檔案 現在有點卡住,不曉得該如何整合= =有一好沒倆好... ※ 引述《windmax1 (I do my best)》之銘言: : 概述一下目前遇到的問題 : 導覽列現在有四個連結,點選任一個連結後,用js+jquery抓出目前網址比對導覽列的連結 : 網址,相符則在該連結上追加 class="nowPage",連結文字下方會出現藍色底線表示 : 正在瀏覽該頁面。 : 程式碼如下: : $(document).ready(function () : { : $(".navBar").load("./navBar.html"); : setTimeout(function () { : $('nav ul li a').each(function (index) { : $(this).on('click', addClassNowPage(this)); : }); }, 2); : }); : 因為用debugger去跑功能都正常,猜是因為網頁讀取速度差異造成現在的問題 : 才嘗試用setTimeout,想不到還真的可以,但Delay時間一定要設2毫秒以上XD : 想請教有人了解這是什麼原因嗎?? : 順便請教不使用前端框架React/Angular/Vue的情況下,有更好的方法去達到小弟要的 : 當前頁面畫底線功能嗎 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 61.222.241.251 ※ 文章網址: https://www.ptt.cc/bbs/Web_Design/M.1542788986.A.192.html

11/21 19:32, 6年前 , 1F
你將第一種方法的$()後面改成第二種方法的$()阿
11/21 19:32, 1F

11/22 11:55, 6年前 , 2F
第二種其實也有在$(.navBar").load裡面了XD 省略沒貼@@
11/22 11:55, 2F
※ 編輯: windmax1 (61.222.241.251), 11/22/2018 14:36:41
文章代碼(AID): #1RzHTw6I (Web_Design)
文章代碼(AID): #1RzHTw6I (Web_Design)