本文實例講述了jQuery基于toggle實現click觸發DIV的顯示與隱藏。分享給大家供大家參考,具體如下:
研究了一下toggle之click觸發DIV的顯示與隱藏,現在把代碼發上來。
HTML代碼:
<input type="button" id="btn" title="Click me 你會看到效果" value="點擊此處" /> <div id="content" style="padding:10px; margin-top:5px; border:1px dotted #BBB;"> <p>每次點擊時切換要調用的函數。<br />如果點擊了一個匹配的元素,則觸發指定的第一個函數,當再次點擊同一元素時,<br /> 則觸發指定的第二個函數。隨后的每次點擊都重復對這兩個函數的輪番調用。 可以使用unbind("click")來刪除。 </p> </div>
JQuery代碼:
完整版:
<script src="http://www.gimoo.net/t/1902/jquery.js"></script> <script language="javascript"> $( function(){ $("#btn").toggle( function(){$(this).click(function(){$("#content").hide();})}, function(){$(this).click(function(){$("#content").show();})} ); } ) </script>
簡寫版(推薦):
<script src="http://www.gimoo.net/t/1902/jquery.js"></script> <script language="javascript"> $(function(){ $("#btn").toggle( function(){$("#content").hide();}, function(){$("#content").show();} ); }) </script>
問題:
使用jQuery toggle時,點擊后會閃一下,DIV才出來
<div > <img src="http://www.gimoo.net/t/1902/${ctx }/images/face.png" height="20" onclick="Effect.toggle('font_div','slide'); return false;" /> </div> <div id="font_div" style="display: none;"> <ul> <li> <a style="color: black; font-size: 10px" onclick="NYSfont2('black');return false;">■</a> </li> </ul> <div>
程序如上,我想點擊一個圖片實現font_div隱藏與顯示,但是實際情況是當我點擊了這個圖片后font_div部分不是很順利的就顯示出來,而是先把整個font_div顯示出來,然后又重新慢慢顯示。就像是閃了一下,再實現我要的效果!隱藏的時候也是一樣,先慢慢的隱藏,當隱藏完之后緊接著又閃一下。不知道這是怎么回事?請指教!!!!
問題補充:
問題解決了,就因為在文件里少了
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
加上這一行就一點問題沒有了!
解決方法:
這里給出一個簡單的例子,可以達到上述效果:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>無標題文檔</title> <script src="http://www.gimoo.net/t/1902/jquery.js"></script> <script> $(function(){ $("#shift").click(function(){ $("p").slideToggle("slow"); }); }); </script> </head> <body> <div > <input type="button" id="shift"value="點擊這里" /> <p style="display:none">我想點擊一個圖片實現font_div隱藏與顯示,但是實際情況是當我點擊了這個圖片后font_div部分不是很順利的就顯示出來,而是先把整個font_div顯示出來,然后又重新慢慢顯示。就像是閃了一下,再實現我要的效果!隱藏的時候也是一樣,先慢慢的隱藏,當隱藏完之后緊接著又閃一下。不知道這是怎么回事?請指教!!!!</p> </div> </body> </html>
更多關于jQuery相關內容感興趣的讀者可查看本站專題:《jquery中Ajax用法總結》、《jQuery表格(table)操作技巧匯總》、《jQuery拖拽特效與技巧總結》、《jQuery擴展技巧總結》、《jQuery常見經典特效匯總》、《jQuery動畫與特效用法總結》、《jquery選擇器用法總結》及《jQuery常用插件及用法總結》
希望本文所述對大家jQuery程序設計有所幫助。