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

作者: windmax1 (I do my best)   2018-11-21 16:29:43
更新一下現況遇到的問題
(抱歉修正一下,改到昏頭了)
這是一開始的寫法,必須判斷網址與<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的情況下,有更好的方法去達到小弟要的
: 當前頁面畫底線功能嗎
作者: pkro12345 (席龍)   2018-11-21 19:32:00
你將第一種方法的$()後面改成第二種方法的$()阿
作者: windmax1 (I do my best)   2018-11-22 11:55:00
第二種其實也有在$(.navBar").load裡面了XD 省略沒貼@@

Links booklink

Contact Us: admin [ a t ] ucptt.com