第一次寫 jQuery plugin,發現有很多事情不能單單在 plugin 裡面就把他解決掉。裡面的 this
問題也讓我撞牆撞了好幾次。不過總算是有點東西出來了,雖然不知道能用在哪裡,但是也當作是個練功吧。
鏈結在此:http://jquery.hinablue.me/jqiphoneslide
可以有的功能與設定:
* 增加自訂頁面(預設為空白頁,內容需自訂
* 指定滑動至某
* 指定可抓取的滑動區
* 限制滑動最大頁
* 可以另外指定拖曳區塊(可以不只一個
* 可以指定特定上一頁、下一頁按鈕(可以不只一個
* 可以隱藏特定頁面(僅計算顯示頁面數量,並重新計算長度
通常我們對於 .hover 這個事件的印象,就如同於 .mouseenter 與 .mouseleave 這兩個事件的合體。這種互動式(Interaction
Helpers)的事件在 jQuery 中還有一個,叫做 .toggle,在這裡就暫且不提。
一般來說,我們使用 .hover 的時候,就是希望能夠監聽使用者的滑鼠動作,然後在某種條件下觸發事件。那麼,最簡單的例子就是這樣
hover test
上次介紹過這個 超犯規上傳檔案工具
[https://blog.hinablue.me/entry/file-uploader-plupload-by-tinymce-developers/],這次要來繼續犯規。
由於我們需要監聽檔案上傳的動作,我們看他的 API 文件中,有描述了 Event 的項目,但是,倘若使用 pluploadQueue 的方法,他所內建的
Event 就被他的 Queue 給寫死了,從外部就沒辦法直覺的控制。當然,要避免這種情況,就是自己重新畫一個 UI 來用(翻桌)。
所以,
看過 上一回 [https://blog.hinablue.me/entry/jquery-queue-and-sure-your-stop-really-stop/]
的問題之後,我們接著看 queue() 與 dequeue() 在核心中做了甚麼事情:
jQuery.extend({
queue: function( elem, type, data ) {
if ( !elem ) {
return;
}
type = (type || "fx") + "queue";
var q = jQuery.data( elem,
前陣子例用 queue 做了許多東西,慢慢的發現,原生的 stop() 並非我想像中的樣子。
* 使用任何的動態效果,或是 delay() 這樣的效果,stop() 能使之停止。
* 使用 queue(),stop() 能使之停止。
* stop() 可以傳入兩個布林值,一個是 clearQueue,另一個是 JumpToEnd。
然而,我卻發現事實上並不是這樣。
* stop() 僅可停止單一動態動態效果,若連續使用並不會停止後續動作。
例如:$('div').animate( { 'left' : '500px'