| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- // Licensed to Cloudera, Inc. under one
- // or more contributor license agreements. See the NOTICE file
- // distributed with this work for additional information
- // regarding copyright ownership. Cloudera, Inc. licenses this file
- // to you under the Apache License, Version 2.0 (the
- // "License"); you may not use this file except in compliance
- // with the License. You may obtain a copy of the License at
- //
- // http://www.apache.org/licenses/LICENSE-2.0
- //
- // Unless required by applicable law or agreed to in writing, software
- // distributed under the License is distributed on an "AS IS" BASIS,
- // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- // See the License for the specific language governing permissions and
- // limitations under the License.
- /*
- * jHue Delayed Input plugin
- * use it with
- * $("#element").jHueDelayedInput( __FUNCTION_YOU_WANT_TO_CALL__, __TIMEOUT_IN_MS__ [optional])
- */
- ;
- (function ($, window, document, undefined) {
- var pluginName = "jHueDelayedInput",
- defaults = {
- fn: null,
- timeout: 300
- };
- function Plugin(element, options) {
- this.element = element;
- this.options = $.extend({}, defaults, options);
- this._defaults = defaults;
- this._name = pluginName;
- this.init();
- }
- Plugin.prototype.setOptions = function (options) {
- this.options = $.extend({}, defaults, options);
- };
- Plugin.prototype.init = function () {
- var _this = this;
- var _timeout = -1;
- if (_this.options.fn != null) {
- $(_this.element).on("keyup", function () {
- window.clearTimeout(_timeout);
- _timeout = window.setTimeout(_this.options.fn, _this.options.timeout);
- });
- }
- };
- $.fn[pluginName] = function (fn, timeout) {
- var _options = {
- fn: fn,
- timeout: timeout
- }
- return this.each(function () {
- if (!$.data(this, 'plugin_' + pluginName)) {
- $.data(this, 'plugin_' + pluginName, new Plugin(this, _options));
- }
- else {
- $.data(this, 'plugin_' + pluginName).setOptions(_options);
- }
- });
- }
- })(jQuery, window, document);
|