Skip to content

Commit 6843ced

Browse files
authored
Spinner: Drop dependency on jQuery Mousewheel
1. Listen to the native `wheel` event without depending on any wrapper plugins. 2. Keep listening to the `mousewheel` event for compatibility with projects using the jQuery Mousewheel plugin but route it to the `wheel` handler. Closes gh-2338
1 parent ef28a5f commit 6843ced

File tree

12 files changed

+64
-254
lines changed

12 files changed

+64
-254
lines changed

Gruntfile.js

-3
Original file line numberDiff line numberDiff line change
@@ -247,9 +247,6 @@ grunt.initConfig( {
247247

248248
"requirejs/require.js": "requirejs/require.js",
249249

250-
"jquery-mousewheel/jquery.mousewheel.js": "jquery-mousewheel/jquery.mousewheel.js",
251-
"jquery-mousewheel/LICENSE.txt": "jquery-mousewheel/LICENSE.txt",
252-
253250
"jquery-simulate/jquery.simulate.js": "jquery-simulate/jquery.simulate.js",
254251
"jquery-simulate/LICENSE.txt": "jquery-simulate/LICENSE.txt",
255252

bower.json

-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,6 @@
1313
},
1414
"devDependencies": {
1515
"jquery-color": "3.0.0",
16-
"jquery-mousewheel": "3.1.12",
1716
"jquery-simulate": "1.1.1",
1817
"qunit": "2.19.4",
1918
"requirejs": "2.1.14",

demos/spinner/currency.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<link rel="stylesheet" href="../../themes/base/all.css">
88
<link rel="stylesheet" href="../demos.css">
99
<script src="../../external/requirejs/require.js"></script>
10-
<script src="../bootstrap.js" data-modules="external/globalize/globalize external/globalize/globalize.culture.de-DE external/globalize/globalize.culture.ja-JP external/jquery-mousewheel/jquery.mousewheel">
10+
<script src="../bootstrap.js" data-modules="external/globalize/globalize external/globalize/globalize.culture.de-DE external/globalize/globalize.culture.ja-JP">
1111
$( "#currency" ).on( "change", function() {
1212
$( "#spinner" ).spinner( "option", "culture", $( this ).val() );
1313
});

demos/spinner/decimal.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<link rel="stylesheet" href="../../themes/base/all.css">
88
<link rel="stylesheet" href="../demos.css">
99
<script src="../../external/requirejs/require.js"></script>
10-
<script src="../bootstrap.js" data-modules="external/globalize/globalize external/globalize/globalize.culture.de-DE external/globalize/globalize.culture.ja-JP external/jquery-mousewheel/jquery.mousewheel">
10+
<script src="../bootstrap.js" data-modules="external/globalize/globalize external/globalize/globalize.culture.de-DE external/globalize/globalize.culture.ja-JP">
1111
$( "#spinner" ).spinner({
1212
step: 0.01,
1313
numberFormat: "n"

demos/spinner/default.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<link rel="stylesheet" href="../../themes/base/all.css">
88
<link rel="stylesheet" href="../demos.css">
99
<script src="../../external/requirejs/require.js"></script>
10-
<script src="../bootstrap.js" data-modules="external/jquery-mousewheel/jquery.mousewheel">
10+
<script src="../bootstrap.js">
1111
var spinner = $( "#spinner" ).spinner();
1212

1313
$( "#disable" ).on( "click", function() {

demos/spinner/latlong.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
<link rel="stylesheet" href="../demos.css">
99
<script src="https://maps.google.com/maps/api/js?sensor=false"></script>
1010
<script src="../../external/requirejs/require.js"></script>
11-
<script src="../bootstrap.js" data-modules="external/jquery-mousewheel/jquery.mousewheel">
11+
<script src="../bootstrap.js">
1212
function latlong() {
1313
return new google.maps.LatLng( $("#lat").val(), $("#lng").val() );
1414
}

demos/spinner/overflow.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<link rel="stylesheet" href="../../themes/base/all.css">
88
<link rel="stylesheet" href="../demos.css">
99
<script src="../../external/requirejs/require.js"></script>
10-
<script src="../bootstrap.js" data-modules="external/jquery-mousewheel/jquery.mousewheel">
10+
<script src="../bootstrap.js">
1111
$( "#spinner" ).spinner({
1212
spin: function( event, ui ) {
1313
if ( ui.value > 10 ) {

demos/spinner/time.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
<link rel="stylesheet" href="../../themes/base/all.css">
88
<link rel="stylesheet" href="../demos.css">
99
<script src="../../external/requirejs/require.js"></script>
10-
<script src="../bootstrap.js" data-modules="external/globalize/globalize external/globalize/globalize.culture.de-DE external/jquery-mousewheel/jquery.mousewheel">
10+
<script src="../bootstrap.js" data-modules="external/globalize/globalize external/globalize/globalize.culture.de-DE">
1111
$.widget( "ui.timespinner", $.ui.spinner, {
1212
options: {
1313
// seconds

external/jquery-mousewheel/LICENSE.txt

-20
This file was deleted.

external/jquery-mousewheel/jquery.mousewheel.js

-221
This file was deleted.

tests/unit/spinner/core.js

+41-1
Original file line numberDiff line numberDiff line change
@@ -163,7 +163,47 @@ QUnit.test( "mouse click on up button, increases value not greater than max", fu
163163
assert.equal( element.val(), 0 );
164164
} );
165165

166-
QUnit.test( "mousewheel on input", function( assert ) {
166+
QUnit.test( "wheel on input", function( assert ) {
167+
var ready = assert.async();
168+
assert.expect( 5 );
169+
170+
var element = $( "#spin" ).val( 0 ).spinner( {
171+
step: 2
172+
} );
173+
174+
element.simulate( "focus" );
175+
setTimeout( step1 );
176+
177+
function getWheelEvent( deltaY ) {
178+
return jQuery.Event( new WheelEvent( "wheel", { deltaY: deltaY } ) );
179+
}
180+
181+
function step1() {
182+
element.trigger( getWheelEvent() );
183+
assert.equal( element.val(), 0, "wheel event without delta does not change value" );
184+
185+
element.trigger( getWheelEvent( -1 ) );
186+
assert.equal( element.val(), 2, "delta -1" );
187+
188+
element.trigger( getWheelEvent( 0.2 ) );
189+
assert.equal( element.val(), 0, "delta 0.2" );
190+
191+
element.trigger( getWheelEvent( 15 ) );
192+
assert.equal( element.val(), -2, "delta 15" );
193+
194+
element.simulate( "blur" );
195+
setTimeout( step2 );
196+
}
197+
198+
function step2() {
199+
element.trigger( "wheel", -1 );
200+
assert.equal( element.val(), -2, "wheel when not focused" );
201+
202+
ready();
203+
}
204+
} );
205+
206+
QUnit.test( "mousewheel on input (DEPRECATED)", function( assert ) {
167207
var ready = assert.async();
168208
assert.expect( 5 );
169209

0 commit comments

Comments
 (0)