编辑:jquery.ui.spinner.js
/*! * jQuery UI Spinner @VERSION * http://jqueryui.com * * Copyright 2013 jQuery Foundation and other contributors * Released under the MIT license. * http://jquery.org/license * * http://api.jqueryui.com/spinner/ * * Depends: * jquery.ui.core.js * jquery.ui.widget.js * jquery.ui.button.js */ (function( $ ) { function modifier( fn ) { return function() { var previous = this.element.val(); fn.apply( this, arguments ); this._refresh(); if ( previous !== this.element.val() ) { this._trigger( "change" ); } }; } $.widget( "ui.spinner", { version: "@VERSION", defaultElement: "<input>", widgetEventPrefix: "spin", options: { culture: null, alignment: 'right', icons: { down: "ui-icon-triangle-1-s", up: "ui-icon-triangle-1-n", left: "ui-icon-triangle-1-w", right: "ui-icon-triangle-1-e" }, incremental: true, max: null, min: null, numberFormat: null, page: 10, step: 1, change: null, spin: null, start: null, stop: null }, _create: function() { // handle string values that need to be parsed this._setOption( "max", this.options.max ); this._setOption( "min", this.options.min ); this._setOption( "step", this.options.step ); // format the value, but don't constrain this._value( this.element.val(), true ); this._draw(); this._on( this._events ); this._refresh(); // turning off autocomplete prevents the browser from remembering the // value when navigating through history, so we re-enable autocomplete // if the page is unloaded before the widget is destroyed. #7790 this._on( this.window, { beforeunload: function() { this.element.removeAttr( "autocomplete" ); } }); }, _getCreateOptions: function() { var options = {}, element = this.element; $.each( [ "min", "max", "step" ], function( i, option ) { var value = element.attr( option ); if ( value !== undefined && value.length ) { options[ option ] = value; } }); return options; }, _events: { keydown: function( event ) { if ( this._start( event ) && this._keydown( event ) ) { event.preventDefault(); } }, keyup: "_stop", focus: function() { this.previous = this.element.val(); }, blur: function( event ) { if ( this.cancelBlur ) { delete this.cancelBlur; return; } this._stop(); this._refresh(); if ( this.previous !== this.element.val() ) { this._trigger( "change", event ); } }, mousewheel: function( event, delta ) { if ( !delta ) { return; } if ( !this.spinning && !this._start( event ) ) { return false; } this._spin( (delta > 0 ? 1 : -1) * this.options.step, event ); clearTimeout( this.mousewheelTimer ); this.mousewheelTimer = this._delay(function() { if ( this.spinning ) { this._stop( event ); } }, 100 ); event.preventDefault(); }, "mousedown .ui-spinner-button": function( event ) { var previous; // We never want the buttons to have focus; whenever the user is // interacting with the spinner, the focus should be on the input. // If the input is focused then this.previous is properly set from // when the input first received focus. If the input is not focused // then we need to set this.previous based on the value before spinning. previous = this.element[0] === this.document[0].activeElement ? this.previous : this.element.val(); function checkFocus() { var isActive = this.element[0] === this.document[0].activeElement; if ( !isActive ) { this.element.focus(); this.previous = previous; // support: IE // IE sets focus asynchronously, so we need to check if focus // moved off of the input because the user clicked on the button. this._delay(function() { this.previous = previous; }); } } // ensure focus is on (or stays on) the text field event.preventDefault(); checkFocus.call( this ); // support: IE // IE doesn't prevent moving focus even with event.preventDefault() // so we set a flag to know when we should ignore the blur event // and check (again) if focus moved off of the input. this.cancelBlur = true; this._delay(function() { delete this.cancelBlur; checkFocus.call( this ); }); if ( this._start( event ) === false ) { return; } this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); }, "mouseup .ui-spinner-button": "_stop", "mouseenter .ui-spinner-button": function( event ) { // button will add ui-state-active if mouse was down while mouseleave and kept down if ( !$( event.currentTarget ).hasClass( "ui-state-active" ) ) { return; } if ( this._start( event ) === false ) { return false; } this._repeat( null, $( event.currentTarget ).hasClass( "ui-spinner-up" ) ? 1 : -1, event ); }, // TODO: do we really want to consider this a stop? // shouldn't we just stop the repeater and wait until mouseup before // we trigger the stop event? "mouseleave .ui-spinner-button": "_stop" }, _draw: function() { var uiSpinner = this.uiSpinner = this.element .addClass( "ui-spinner-input" ) .attr( "autocomplete", "off" ) .wrap( this._uiSpinnerHtml() ) .parent() .addClass( "ui-spinner-" + this.options.alignment ) // add buttons .append( this._buttonHtml() ); this.element.attr( "role", "spinbutton" ); // button bindings this.buttons = uiSpinner.find( ".ui-spinner-button" ) .attr( "tabIndex", -1 ) .button() .removeClass( "ui-corner-all" ); // IE 6 doesn't understand height: 50% for the buttons // unless the wrapper has an explicit height if ( this.buttons.height() > Math.ceil( uiSpinner.height() * 0.5 ) && uiSpinner.height() > 0 ) { uiSpinner.height( uiSpinner.height() ); } // disable spinner if element was already disabled if ( this.options.disabled ) { this.disable(); } }, _keydown: function( event ) { var options = this.options, keyCode = $.ui.keyCode; switch ( event.keyCode ) { case keyCode.UP: this._repeat( null, 1, event ); return true; case keyCode.DOWN: this._repeat( null, -1, event ); return true; case keyCode.PAGE_UP: this._repeat( null, options.page, event ); return true; case keyCode.PAGE_DOWN: this._repeat( null, -options.page, event ); return true; } return false; }, _uiSpinnerHtml: function() { return "<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"; }, _buttonHtml: function() { switch (this.options.alignment) { case 'right': return "" + "<a class='ui-spinner-button ui-spinner-up ui-corner-tr'>" + "<span class='ui-icon " + this.options.icons.up + "'>▲</span>" + "</a>" + "<a class='ui-spinner-button ui-spinner-down ui-corner-br'>" + "<span class='ui-icon " + this.options.icons.down + "'>▼</span>" + "</a>"; case 'left': return "" + "<a class='ui-spinner-button ui-spinner-up ui-corner-tl'>" + "<span class='ui-icon " + this.options.icons.up + "'>▲</span>" + "</a>" + "<a class='ui-spinner-button ui-spinner-down ui-corner-bl'>" + "<span class='ui-icon " + this.options.icons.down + "'>▼</span>" + "</a>"; case 'vertical': return "" + "<a class='ui-spinner-button ui-spinner-up ui-corner-top'>" + "<span class='ui-icon " + this.options.icons.up + "'>▲</span>" + "</a>" + "<a class='ui-spinner-button ui-spinner-down ui-corner-bottom'>" + "<span class='ui-icon " + this.options.icons.down + "'>▼</span>" + "</a>"; case 'horizontal': return "" + "<a class='ui-spinner-button ui-spinner-up ui-corner-right'>" + "<span class='ui-icon " + this.options.icons.right + "'>►</span>" + "</a>" + "<a class='ui-spinner-button ui-spinner-down ui-corner-left'>" + "<span class='ui-icon " + this.options.icons.left + "'>◄</span>" + "</a>"; } }, _start: function( event ) { if ( !this.spinning && this._trigger( "start", event ) === false ) { return false; } if ( !this.counter ) { this.counter = 1; } this.spinning = true; return true; }, _repeat: function( i, steps, event ) { i = i || 500; clearTimeout( this.timer ); this.timer = this._delay(function() { this._repeat( 40, steps, event ); }, i ); this._spin( steps * this.options.step, event ); }, _spin: function( step, event ) { var value = this.value() || 0; if ( !this.counter ) { this.counter = 1; } value = this._adjustValue( value + step * this._increment( this.counter ) ); if ( !this.spinning || this._trigger( "spin", event, { value: value } ) !== false) { this._value( value ); this.counter++; } }, _increment: function( i ) { var incremental = this.options.incremental; if ( incremental ) { return $.isFunction( incremental ) ? incremental( i ) : Math.floor( i*i*i/50000 - i*i/500 + 17*i/200 + 1 ); } return 1; }, _precision: function() { var precision = this._precisionOf( this.options.step ); if ( this.options.min !== null ) { precision = Math.max( precision, this._precisionOf( this.options.min ) ); } return precision; }, _precisionOf: function( num ) { var str = num.toString(), decimal = str.indexOf( "." ); return decimal === -1 ? 0 : str.length - decimal - 1; }, _adjustValue: function( value ) { var base, aboveMin, options = this.options; // make sure we're at a valid step // - find out where we are relative to the base (min or 0) base = options.min !== null ? options.min : 0; aboveMin = value - base; // - round to the nearest step aboveMin = Math.round(aboveMin / options.step) * options.step; // - rounding is based on 0, so adjust back to our base value = base + aboveMin; // fix precision from bad JS floating point math value = parseFloat( value.toFixed( this._precision() ) ); // clamp the value if ( options.max !== null && value > options.max) { return options.max; } if ( options.min !== null && value < options.min ) { return options.min; } return value; }, _stop: function( event ) { if ( !this.spinning ) { return; } clearTimeout( this.timer ); clearTimeout( this.mousewheelTimer ); this.counter = 0; this.spinning = false; this._trigger( "stop", event ); }, _setOption: function( key, value ) { if ( key === "culture" || key === "numberFormat" ) { var prevValue = this._parse( this.element.val() ); this.options[ key ] = value; this.element.val( this._format( prevValue ) ); return; } if ( key === "max" || key === "min" || key === "step" ) { if ( typeof value === "string" ) { value = this._parse( value ); } } if ( key === "icons" ) { if ( this.options.alignment == 'horizontal' ) { this.buttons.first().find( ".ui-icon" ) .removeClass( this.options.icons.left ) .addClass( value.left ); this.buttons.last().find( ".ui-icon" ) .removeClass( this.options.icons.right ) .addClass( value.right ); } else { this.buttons.first().find( ".ui-icon" ) .removeClass( this.options.icons.up ) .addClass( value.up ); this.buttons.last().find( ".ui-icon" ) .removeClass( this.options.icons.down ) .addClass( value.down ); } } this._super( key, value ); if ( key === "disabled" ) { this.widget().toggleClass( "ui-state-disabled", !!value ); this.element.prop( "disabled", !!value ); this.buttons.button( value ? "disable" : "enable" ); } }, _setOptions: modifier(function( options ) { this._super( options ); this._value( this.element.val() ); }), _parse: function( val ) { if ( typeof val === "string" && val !== "" ) { val = window.Globalize && this.options.numberFormat ? Globalize.parseFloat( val, 10, this.options.culture ) : +val; } return val === "" || isNaN( val ) ? null : val; }, _format: function( value ) { if ( value === "" ) { return ""; } return window.Globalize && this.options.numberFormat ? Globalize.format( value, this.options.numberFormat, this.options.culture ) : value; }, _refresh: function() { this.element.attr({ "aria-valuemin": this.options.min, "aria-valuemax": this.options.max, // TODO: what should we do with values that can't be parsed? "aria-valuenow": this._parse( this.element.val() ) }); }, // update the value without triggering change _value: function( value, allowAny ) { var parsed; if ( value !== "" ) { parsed = this._parse( value ); if ( parsed !== null ) { if ( !allowAny ) { parsed = this._adjustValue( parsed ); } value = this._format( parsed ); } } this.element.val( value ); this._refresh(); }, _destroy: function() { this.element .removeClass( "ui-spinner-input" ) .prop( "disabled", false ) .removeAttr( "autocomplete" ) .removeAttr( "role" ) .removeAttr( "aria-valuemin" ) .removeAttr( "aria-valuemax" ) .removeAttr( "aria-valuenow" ); this.uiSpinner.replaceWith( this.element ); }, stepUp: modifier(function( steps ) { this._stepUp( steps ); }), _stepUp: function( steps ) { if ( this._start() ) { this._spin( (steps || 1) * this.options.step ); this._stop(); } }, stepDown: modifier(function( steps ) { this._stepDown( steps ); }), _stepDown: function( steps ) { if ( this._start() ) { this._spin( (steps || 1) * -this.options.step ); this._stop(); } }, pageUp: modifier(function( pages ) { this._stepUp( (pages || 1) * this.options.page ); }), pageDown: modifier(function( pages ) { this._stepDown( (pages || 1) * this.options.page ); }), value: function( newVal ) { if ( !arguments.length ) { return this._parse( this.element.val() ); } modifier( this._value ).call( this, newVal ); }, widget: function() { return this.uiSpinner; } }); }( jQuery ) );
保存文件
位置:
home
/
fembzvrs
/
zimeza.com
/
wp-content
/
plugins
/
ad-inserter
/
includes
/
js
批量上传
创建
创建
批量权限
批量删除
名称
权限
大小
修改时间
操作
↑ 返回上级
-
-
-
-
ad-inserter-check.js
-rw-r--r--
304 B
2017-05-13 01:33
编辑
下载
权限
删除
重命名
ai-adb-data.js
-rw-r--r--
1.75 KB
2022-10-10 20:16
编辑
下载
权限
删除
重命名
ai-adb-data.min.js
-rw-r--r--
1.53 KB
2022-10-10 20:16
编辑
下载
权限
删除
重命名
ai-adb-try.js
-rw-r--r--
405 B
2022-11-01 19:56
编辑
下载
权限
删除
重命名
ai-adb-try.min.js
-rw-r--r--
309 B
2022-11-01 19:56
编辑
下载
权限
删除
重命名
ai-adb.js
-rw-r--r--
37.29 KB
2026-05-04 22:28
编辑
下载
权限
删除
重命名
ai-adb.min.js
-rw-r--r--
13.42 KB
2026-05-04 22:28
编辑
下载
权限
删除
重命名
ai-admin.js
-rw-r--r--
1.55 KB
2019-02-04 22:43
编辑
下载
权限
删除
重命名
ai-ads-data.js
-rw-r--r--
148 B
2022-10-10 20:16
编辑
下载
权限
删除
重命名
ai-ads-data.min.js
-rw-r--r--
123 B
2022-10-10 20:16
编辑
下载
权限
删除
重命名
ai-ads.js
-rw-r--r--
8.4 KB
2023-06-21 20:37
编辑
下载
权限
删除
重命名
ai-ads.min.js
-rw-r--r--
2.35 KB
2023-03-21 23:11
编辑
下载
权限
删除
重命名
ai-auto-ads.js
-rw-r--r--
683 B
2022-10-10 20:16
编辑
下载
权限
删除
重命名
ai-auto-ads.min.js
-rw-r--r--
344 B
2022-10-10 20:16
编辑
下载
权限
删除
重命名
ai-base64.js
-rw-r--r--
1.27 KB
2020-05-22 22:02
编辑
下载
权限
删除
重命名
ai-base64.min.js
-rw-r--r--
1.13 KB
2020-03-15 13:39
编辑
下载
权限
删除
重命名
ai-cookie-data.js
-rw-r--r--
87 B
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-cookie-data.min.js
-rw-r--r--
72 B
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-cookie.js
-rw-r--r--
28.08 KB
2024-08-11 18:28
编辑
下载
权限
删除
重命名
ai-cookie.min.js
-rw-r--r--
9.88 KB
2024-08-11 18:28
编辑
下载
权限
删除
重命名
ai-errors-footer.js
-rw-r--r--
1.05 KB
2022-09-28 21:46
编辑
下载
权限
删除
重命名
ai-errors-footer.min.js
-rw-r--r--
600 B
2022-09-28 21:46
编辑
下载
权限
删除
重命名
ai-errors-head.min.js
-rw-r--r--
77 B
2020-01-05 22:32
编辑
下载
权限
删除
重命名
ai-errors.min.js
-rw-r--r--
293 B
2020-01-05 22:32
编辑
下载
权限
删除
重命名
ai-filter-data.js
-rw-r--r--
142 B
2022-10-18 23:11
编辑
下载
权限
删除
重命名
ai-filter-data.min.js
-rw-r--r--
116 B
2022-10-18 23:11
编辑
下载
权限
删除
重命名
ai-filter.js
-rw-r--r--
16.59 KB
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-filter.min.js
-rw-r--r--
4.83 KB
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-insert-data.min.js
-rw-r--r--
75 B
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-insert.js
-rw-r--r--
30.3 KB
2023-06-03 21:04
编辑
下载
权限
删除
重命名
ai-insert.min.js
-rw-r--r--
10.28 KB
2023-06-03 21:04
编辑
下载
权限
删除
重命名
ai-jquery.js
-rw-r--r--
18 B
2018-06-16 16:14
编辑
下载
权限
删除
重命名
ai-lists-data.js
-rw-r--r--
80 B
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-lists-data.min.js
-rw-r--r--
68 B
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-lists.js
-rw-r--r--
54.14 KB
2025-01-22 00:31
编辑
下载
权限
删除
重命名
ai-lists.min.js
-rw-r--r--
15.08 KB
2025-01-22 00:31
编辑
下载
权限
删除
重命名
ai-mobile-detect.js
-rw-r--r--
69.57 KB
2022-10-12 22:31
编辑
下载
权限
删除
重命名
ai-mobile-detect.min.js
-rw-r--r--
38.55 KB
2022-10-12 22:31
编辑
下载
权限
删除
重命名
ai-rotation-data.js
-rw-r--r--
100 B
2023-01-18 23:35
编辑
下载
权限
删除
重命名
ai-rotation-data.min.js
-rw-r--r--
80 B
2023-01-18 23:35
编辑
下载
权限
删除
重命名
ai-rotation.js
-rw-r--r--
31.92 KB
2026-05-04 22:28
编辑
下载
权限
删除
重命名
ai-rotation.min.js
-rw-r--r--
7.39 KB
2026-05-04 22:28
编辑
下载
权限
删除
重命名
ai-select-data.js
-rw-r--r--
156 B
2023-01-02 21:37
编辑
下载
权限
删除
重命名
ai-select-data.min.js
-rw-r--r--
131 B
2023-01-02 21:37
编辑
下载
权限
删除
重命名
ai-select.js
-rw-r--r--
18.03 KB
2024-04-15 22:22
编辑
下载
权限
删除
重命名
ai-select.min.js
-rw-r--r--
7.54 KB
2024-04-15 22:22
编辑
下载
权限
删除
重命名
ai-sidebar-data.js
-rw-r--r--
179 B
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-sidebar-data.min.js
-rw-r--r--
160 B
2023-01-01 23:22
编辑
下载
权限
删除
重命名
ai-sidebar.js
-rw-r--r--
6.94 KB
2023-02-05 15:58
编辑
下载
权限
删除
重命名
ai-sidebar.min.js
-rw-r--r--
1.69 KB
2023-02-05 15:58
编辑
下载
权限
删除
重命名
ai-wait-functions.js
-rw-r--r--
473 B
2022-10-10 20:16
编辑
下载
权限
删除
重命名
ai-wait-functions.min.js
-rw-r--r--
227 B
2022-10-10 20:16
编辑
下载
权限
删除
重命名
ai-wait-jquery.js
-rw-r--r--
1.71 KB
2021-01-06 22:01
编辑
下载
权限
删除
重命名
ai-wait-jquery.min.js
-rw-r--r--
682 B
2021-01-06 22:01
编辑
下载
权限
删除
重命名
image-picker.js
-rw-r--r--
9.9 KB
2017-01-29 23:56
编辑
下载
权限
删除
重命名
image-picker.min.js
-rw-r--r--
7.35 KB
2017-04-27 22:02
编辑
下载
权限
删除
重命名
index.html
-rw-r--r--
44 B
2018-08-24 20:39
编辑
下载
权限
删除
重命名
jquery.mousewheel.js
-rw-r--r--
8.07 KB
2016-09-30 22:30
编辑
下载
权限
删除
重命名
jquery.mousewheel.min.js
-rw-r--r--
2.71 KB
2016-09-30 22:30
编辑
下载
权限
删除
重命名
jquery.quicksearch.js
-rw-r--r--
4.05 KB
2025-01-30 01:36
编辑
下载
权限
删除
重命名
jquery.scombobox.js
-rw-r--r--
65.03 KB
2025-01-29 01:01
编辑
下载
权限
删除
重命名
jquery.scombobox.min.js
-rw-r--r--
23.23 KB
2025-01-29 01:01
编辑
下载
权限
删除
重命名
jquery.ui.spinner.js
-rw-r--r--
13.59 KB
2017-05-13 01:33
编辑
下载
权限
删除
重命名
missed.js
-rw-r--r--
2.64 KB
2018-01-29 21:42
编辑
下载
权限
删除
重命名
theia-sticky-sidebar.js
-rw-r--r--
15.99 KB
2023-01-01 23:22
编辑
下载
权限
删除
重命名
theia-sticky-sidebar.min.js
-rw-r--r--
5.46 KB
2023-01-01 23:22
编辑
下载
权限
删除
重命名