亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

急求?。。?!JQuery toggle()方法替代問題大佬們有什么好的建議?

急求?。。?!JQuery toggle()方法替代問題大佬們有什么好的建議?

白衣非少年 2019-06-10 09:30:15
鋒利的JQuery一書中對toggle方法的講解停留在1.9版本以前,現在這個方法已經刪除了切換綁定事件的用途,于是我想嘗試一下幾種不同的替代方法:div:nth-of-type(1){width:200px;height:200px;background-color:aqua;float:left;display:block;}div:nth-of-type(2){width:200px;height:200px;background-color:tomato;margin-left:200px;}$(function(){$("#show-box").click(function(){if($("#show-box").css("display")=="block"){//is(":hidden")$(this).hide(300);}else{$(this).show(300);}});vari=0;$("#fade-box").click(function(){if(i==0){$(this).fadeOut(300);i=1;}elseif(i==1){$(this).fadeIn(300);i=0;}console.log(i);})})兩種方法都無法工作:都是只能消失而不能再次出現,想請問一下各位大佬是哪里出了問題...已經查閱了一些博文,用的也多是這兩種方法...
查看完整描述

2 回答

?
藍山帝景

TA貢獻1843條經驗 獲得超7個贊

第一種方法里,.css()這個方法主要是針對行內樣式的操作(執行存在不確定性),并且,display在非block值的情況下也可能是非隱藏的狀態(另外多說一句,.show()和.hide()這對方法,會緩存display原來的值,所以就不會出現非block元素被block這樣的事),所以不建議這樣用
第二種方法思路可以,但DOM相關的變量(尤其是狀態),建議你用data-xxxx這樣的屬性放在元素里,這樣你事件回調里直接$(this).data('xxxx')就能取到屬性,還可以避免變量沖突和作用域之類的問題。
data相關的API查文檔吧,比如>這里<這個就挺方便。鋒利那本書太老了,個人不太推薦。
                            
查看完整回答
反對 回復 2019-06-10
?
慕斯王

TA貢獻1864條經驗 獲得超2個贊

你的理解有點問題,消失了的話就點不了了,自然不會觸發else后面的動作了
切換1
切換2
                            
查看完整回答
反對 回復 2019-06-10
慕課專欄
更多

添加回答

了解更多

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號