汎用化
昨日のは マウスオーバー, マウスアウトによる制御だったけど他のイベントでもできるようにしてみた。
(function($){ $.fn.eventDelay = function(delay, triger, cancel, callback) { return this.each(function() { var target = $(this); var tid; target.bind(triger, function(){ tid = setTimeout(callback, delay * 1000) }) target.bind(cancel, function(){ clearTimeout(tid) }) }); } })(jQuery)
引数が多くなったけど気にしない。
マウスオーバー
昨日のをこれで書くと
$('#foo').eventDelay(5, 'mouseover', 'mouseout', function(){ alert('bar') })
キー入力
最後のキー入力から 1秒後に 内容をアラート.
<input id="foo" type="text" />
$('#foo').eventDelay(1, 'keyup', 'keydown', function() { alert($('#foo').val()); });
名前が適当すぎるけど気にしない。 delay ではないと思う。