mirror of
https://github.com/Lastorder-DC/rhymix.git
synced 2026-01-07 18:51:41 +09:00
git-svn-id: http://xe-core.googlecode.com/svn/branches/maserati@13180 201d5d3c-b55e-5fd7-737f-ddc643e51545
61 lines
1.1 KiB
JavaScript
61 lines
1.1 KiB
JavaScript
/**
|
|
* @brief Watch Input box
|
|
* @author NAVER (developers@xpresseingine.com)
|
|
**/
|
|
(function($){
|
|
|
|
var class_name = '_watch_input';
|
|
|
|
$.fn.watch_input = function(settings)
|
|
{
|
|
if (this.length == 0) return false;
|
|
if (this.length > 1) {
|
|
this.each(function(){ $(this).watch_input(settings) });
|
|
return true;
|
|
}
|
|
if (!$.isFunction(settings.oninput)) return false;
|
|
if (this.hasClass(class_name)) return false;
|
|
|
|
this[0].__wi_oninput = settings.oninput;
|
|
this.addClass(class_name).keydown(_onkeydown).focus(_onfocus).blur(_onblur);
|
|
|
|
return this;
|
|
};
|
|
|
|
var timer = null, val = '', ie=$.browser.msie;
|
|
|
|
function _onkeydown(event)
|
|
{
|
|
if ($(this).val() != val) {
|
|
val = $(this).val();
|
|
this.__wi_oninput();
|
|
}
|
|
}
|
|
|
|
function _onfocus(event)
|
|
{
|
|
var self = $(this);
|
|
|
|
val = self.val();
|
|
if (ie) return true;
|
|
|
|
(function fn() {
|
|
if ( (self.val() != val) && $.isFunction(self[0].__wi_oninput) ) {
|
|
val = self.val();
|
|
self[0].__wi_oninput();
|
|
}
|
|
|
|
timer = setTimeout(arguments.callee, 100);
|
|
})();
|
|
}
|
|
|
|
function _onblur(event)
|
|
{
|
|
val = '';
|
|
if (!ie && timer) {
|
|
clearTimeout(timer);
|
|
timer = null;
|
|
}
|
|
}
|
|
|
|
})(jQuery);
|