-
-
Save arthur12345543/347c2ab814953e3b2c89 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /* | |
| * jQuery mousehold plugin - fires an event while the mouse is clicked down. | |
| * Additionally, the function, when executed, is passed a single | |
| * argument representing the count of times the event has been fired during | |
| * this session of the mouse hold. | |
| * | |
| * @author Remy Sharp (leftlogic.com) | |
| * @date 2006-12-15 | |
| * @example $("img").mousehold(200, function(i){ }) | |
| * @desc Repeats firing the passed function while the mouse is clicked down | |
| * | |
| * @name mousehold | |
| * @type jQuery | |
| * @param Number timeout The frequency to repeat the event in milliseconds | |
| * @param Function fn A function to execute | |
| * @cat Plugin | |
| * | |
| * Modified by Jimmy Lam (jimmykhlam.com) on 2011-11-26 to include passing | |
| * the origEv event from original mousedown. | |
| */ | |
| jQuery.fn.mousehold = function(timeout, f) { | |
| if (timeout && typeof timeout == 'function') { | |
| f = timeout; | |
| timeout = 100; | |
| } | |
| if (f && typeof f == 'function') { | |
| var timer = 0; | |
| var fireStep = 0; | |
| return this.each(function() { | |
| var origEv; //var for original event | |
| jQuery(this).mousedown(function(ev) { | |
| origEv = ev; //rem original event | |
| fireStep = 1; | |
| var ctr = 0; | |
| var t = this; | |
| timer = setInterval(function() { | |
| ctr++; | |
| f.call(t, ctr, ev); | |
| fireStep = 2; | |
| }, timeout); | |
| }) | |
| clearMousehold = function() { | |
| clearInterval(timer); | |
| if (fireStep == 1) f.call(this, 1, origEv); //pass original event | |
| fireStep = 0; | |
| } | |
| jQuery(this).mouseout(clearMousehold); | |
| jQuery(this).mouseup(clearMousehold); | |
| }) | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment