Ajax 板


LINE

※ 引述《JYHuang (夏天到了,冷不起来了说)》之铭言: : 这几天在写一个grid的功能,遇到了一点小问题。 : 就拿出来讨论一下。 : ╔═╦═╦═╗ : th ║1 ║2 ║3 ║ : ╟─╫─╫─╢ : td ├─┼─┼─┤ : td ├─┼─┼─┤ : td └─┴─┴─┘ : 简单的说,我要做的动作大至上是click th[n]时, : th跟每列的第n个td都做fadeOut的动作 : 然後再用test()计算table的宽度 : 首先 : $("thead th").click(function(){ : var index =$(this).index(); : $("td:eq("+index+")","tr").fadeOut('slow'); : test(); : }); : 当然..事情没憨人想的这麽简单 : javascript的指令是不会停下来等动作执行完再执行下一行的 其实是jQuery跑特效时不知用了什麽方法使得 程式不会卡在特效跑完才继续 我猜应该是用setTimeout的方式吧... 事实上javascript还是一行跑完才跑下一行的 : 所以fadeOut这种有时间轴的动作会跟test()一起被执行 : 这样一来计算出来的宽度就有误了。 : 所以接着试试看callback : $("thead th").click(function(){ : var index =$(this).index(); : $("td:eq("+index+")","tr").fadeOut('slow',test); : }); : 不过问题又来了.. : 要执行的对像是一个集合.. : 所以callback会被每一个子元件重复的执行... : 此时想到了JQuery还有一个queue的功能.. : 不过看了半天官方API文件还是一头雾水..只好慢慢踹.. : jQuery.queue( $("td:eq("+index+")","tr")[0], "fx", function () { : test(); : jQuery.dequeue( this ); : }); : 问题在红色的框那里.. : 那个框似乎是指集合的index : 当集合第index个元件执行完之後才会跑test(),而这里是以元件的集合做动作 : 所以如果照着官方给[0]的话 : 会在第一行的td fadeOut後就执行test了 : 所以要先计算出集合的长度.. : var _len = $("td:eq("+index+")","tr").size() : jQuery.queue( $("td:eq("+index+")","tr")[_len -1], "fx",.... : 或是直接指向集合的最後一个元件 : jQuery.queue( $("td:eq("+index+")","tr").filter(":last")[0], "fx",..... : 这边用filter而不是selector中用:last,是因为这是指所以集合中的最後一个 : 直接在Selector中用:last的话,会是指每个tr第index个td的最後一个 : JQuery的selector好复杂 =.=... 其实只要用$(selector).last()就好了~囧 : 另外... : 那个dequeue的功用到底是? queue很好很强大 简单的说就是插队就对了~ 例如一堆人排队买饮料 一般的店(javascript)都是前面的人先结帐而且拿到饮料 下一个人才能结帐买饮料 而换jQuery开店就变成 一样排队结帐 但是结完帐以後就先去旁边等饮料 换下一个人去结帐 然後去旁边等饮料 下一个又递补上去... 然後现在有个人插队(queue)进去 他很机车 他先等其他结帐完的人拿到饮料离开後才结帐 他结帐完以後就一样去旁边等饮料 其他人继续结帐 而dequeue的意义就是那个插队的人离开的动作 如果用jQuery.queue的方式是一定要加dequeue 不过具体上我也不了解deuqueue到底是什麽意思 @@" 因为$(selector).queue()没加dequeue也会跑阿... 一个简单的范例: http://jsfiddle.net/9qx9z/2/ 刚刚改了一下范例 各位可以注意div#x淡出时 th、td也在淡出 代表即使特效执行中 程式还是继续往下跑 同时div#c也在淡入 而等到th、td淡出效果跑完以後 div#a紧接着写上'%'与'@' 同时block1也在淡出 此时queue插队完 th、td又再度淡入 也就是顺序的去执行特效 以这个范例来说 th、td的顺序是 th、td先是淡出 然後queue插队进来 等到淡出结束以後就换queue执行 queue执行完以後才换淡入执行 -- onion0350754:__子,_不异空,空不异__,_即是空,空即是_ 07/27 17:49 wannahappy2: 射精 07/27 17:50 shirami:       射 07/27 18:02 onion0350754: 身寸 07/27 18:04 tony1688: 穴 穴 07/27 18:10 onion0350754:好糟糕~~!万一_经真的改成那样就GJRZ!!(啊们 07/27 18:14 --



※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.127.208.70 ※ 编辑: s25g5d4 来自: 59.127.208.70 (08/27 19:15)







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:Tech_Job站内搜寻

TOP