Data
用來提供資料暫存的指令,但其中有很多方法跟Effects動畫操作有關。
一、.clearQueue()
把已經排進demo queue的動作都給排清,
也就是說全都從demo queue移出並呈現完畢。
二、.data()
三、.dequeue()
將指定動作從demo queue移出並呈現。
.dequeue( [ String queueName ] )
四、jQuery.data()
用來設定與取得資料。
這是一個底層操作方法,高階的操作方法請參考.data()方法。
有三種多載方法。
1、jQuery.data( Element element, String key, Anything value )
對一元素設定資料。
jQuery.data( document.body, "foo", 52 );
2、jQuery.data( Element element, String key )
取得某一元素值。
jQuery.data( document.body, "foo" );
3、jQuery.data( Element element )
取得某一元素所有被設定資料。
jQuery.data( document.body );
五、jQuery.dequeue()
將指定動作從demo queue移出並呈現。他是.dequeue()的底層方法。
jQuery.dequeue( Element element [, String queueName ] )
六、jQuery.hasData()
用來判斷一元素是否存有jQuery data。
jQuery.hasData( Element element )
七、jQuery.queue()
用來秀出queue裡將要執行的方法。他是.queue()的底層方法。
jQuery.queue( Element element [, String queueName ] )
jQuery.queue( Element element, String queueName, Array newQueue )
jQuery.queue( Element element, String queueName, Function callback )
八、jQuery.removeData()
用來移除一元素的jQuery data。他是.removeData()的底層方法。
jQuery.removeData( Element element [, String name ] )
九、.queue()
用來秀出queue裡將要執行的方法。
共有三種多載方法。
1、.queue( [ String queueName ] )
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>queue demo</title> <style> div { margin: 3px; width: 40px; height: 40px; position: absolute; left: 0px; top: 60px; background: green; display: none; } div.newcolor { background: blue; } p { color: red; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <p>The queue length is: <span></span></p> <div></div> <script> var div = $("div"); function runIt() { div .show("slow") .animate({ left: "+=200" }, 2000) .animate({ left: "-=200" }, 1500) .hide("slow") .slideUp("normal", runIt); } function showIt() { var n = div.queue("fx"); $("span").text(n.length); setTimeout(showIt, 100); } runIt(); showIt(); </script> </body> </html>
如上範例,queue原本的預設名稱是 fx,
而div.queue的長度就是.show + .animate + .animate + .hide + .slideUp。
2、.queue( [ String queueName ], Array newQueue )
一個Array組成的function用來替代現有的queue。
<!doctype html> <html lang="en"> <head> <meta charset="utf-8"> <title>queue demo</title> <style> div { margin: 3px; width: 40px; height: 40px; position: absolute; left: 0px; top: 30px; background: green; display: none; } div.newcolor { background: blue; } </style> <script src="https://code.jquery.com/jquery-1.10.2.js"></script> </head> <body> <button id="start">Start</button> <button id="stop">Stop</button> <div></div> <script> $("#start").click(function () { $("div") .show("slow") .animate({ left: "+=200" }, 5000) .queue(function () { $(this).addClass("newcolor").dequeue(); }) .animate({ left: '-=200' }, 1500) .queue(function () { $(this).removeClass("newcolor").dequeue(); }) .slideUp(); }); $("#stop").click(function () { $("div") .queue("fx", []) .stop(); }); </script> </body> </html>
如上範例,籍由傳入空的Array來取代原本已在queue裡的動作,
來達到暫停的效果。
3、.queue( [ String queueName ], Function callback )
將新function加入queue,並可使用dequeue方法將function及時呈現出來。
請參考上一個範例。
十、.removeData()
用來移除一元素的jQuery data。
.removeData( [ String name ] )
.removeData( [ list list ] ) Type: Array or String
.removeData()不帶參數的方法將會刪除所有的jQuery data。