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