Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 397e986

Browse files
author
Aeron Glemann
committed
fixed: "focus" doesn't bubble, see fnagel#241
1 parent 8b8480c commit 397e986

File tree

4 files changed

+131
-1
lines changed

4 files changed

+131
-1
lines changed

tests/unit/index.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,7 @@ <h2>Widgets</h2>
6868
<li><a href="datepicker/datepicker.html">Datepicker</a></li>
6969
<li><a href="dialog/dialog.html">Dialog</a></li>
7070
<li><a href="progressbar/progressbar.html">Progressbar</a></li>
71+
<li><a href="selectmenu/selectmenu.html">Selectmenu</a></li>
7172
<li><a href="slider/slider.html">Slider</a></li>
7273
<li><a href="tabs/tabs.html">Tabs</a></li>
7374
</ul>
Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8" />
5+
<title>jQuery UI Selectmenu Test Suite</title>
6+
7+
<link type="text/css" href="../../../themes/base/jquery.ui.selectmenu.css" rel="stylesheet" />
8+
9+
<script src="../../jquery.js"></script>
10+
<script type="text/javascript" src="../../../ui/jquery.ui.core.js"></script>
11+
<script type="text/javascript" src="../../../ui/jquery.ui.widget.js"></script>
12+
<script type="text/javascript" src="../../../ui/jquery.ui.selectmenu.js"></script>
13+
14+
<link rel="stylesheet" href="../../../external/qunit.css" type="text/css"/>
15+
<script type="text/javascript" src="../../../external/qunit.js"></script>
16+
<script type="text/javascript" src="../../jquery.simulate.js"></script>
17+
<script type="text/javascript" src="../testsuite.js"></script>
18+
19+
<script type="text/javascript" src="selectmenu_tickets.js"></script>
20+
21+
<script type="text/javascript" src="../swarminject.js"></script>
22+
</head>
23+
<body>
24+
25+
<h1 id="qunit-header">jQuery UI Selectmenu Test Suite</h1>
26+
<h2 id="qunit-banner"></h2>
27+
<h2 id="qunit-userAgent"></h2>
28+
<ol id="qunit-tests">
29+
</ol>
30+
31+
<div id="qunit-fixture">
32+
<select id="selectmenu">
33+
<option value="AL">Alabama</option>
34+
<option value="AK">Alaska</option>
35+
<option value="AS">American Samoa</option>
36+
<option value="AZ">Arizona</option>
37+
<option value="AR">Arkansas</option>
38+
<option value="AA">Armed Forces Americas</option>
39+
<option value="AE">Armed Forces Europe</option>
40+
<option value="AP">Armed Forces Pacific</option>
41+
<option value="CA">California</option>
42+
<option value="CO">Colorado</option>
43+
<option value="CT">Connecticut</option>
44+
<option value="DE">Delaware</option>
45+
<option value="DC">District of Columbia</option>
46+
<option value="FL">Florida</option>
47+
<option value="GA">Georgia</option>
48+
<option value="GU">Guam</option>
49+
<option value="HI">Hawaii</option>
50+
<option value="ID">Idaho</option>
51+
<option value="IL">Illinois</option>
52+
<option value="IN">Indiana</option>
53+
<option value="IA">Iowa</option>
54+
<option value="KS">Kansas</option>
55+
<option value="KY">Kentucky</option>
56+
<option value="LA">Louisiana</option>
57+
<option value="ME">Maine</option>
58+
<option value="MP">Marianas</option>
59+
<option value="MH">Marshall Islands</option>
60+
<option value="MD">Maryland</option>
61+
<option value="MA">Massachusetts</option>
62+
<option value="MI">Michigan</option>
63+
<option value="FM">Micronesia</option>
64+
<option value="MN">Minnesota</option>
65+
<option value="MS">Mississippi</option>
66+
<option value="MO">Missouri</option>
67+
<option value="MT">Montana</option>
68+
<option value="NE">Nebraska</option>
69+
<option value="NV">Nevada</option>
70+
<option value="NH">New Hampshire</option>
71+
<option value="NJ">New Jersey</option>
72+
<option value="NM">New Mexico</option>
73+
<option value="NY">New York</option>
74+
<option value="NC">North Carolina</option>
75+
<option value="ND">North Dakota</option>
76+
<option value="OH">Ohio</option>
77+
<option value="OK">Oklahoma</option>
78+
<option value="OR">Oregon</option>
79+
<option value="PW">Palau</option>
80+
<option value="PA">Pennsylvania</option>
81+
<option value="PR">Puerto Rico</option>
82+
<option value="RI">Rhode Island</option>
83+
<option value="SC">South Carolina</option>
84+
<option value="SD">South Dakota</option>
85+
<option value="TN">Tennessee</option>
86+
<option value="TX">Texas</option>
87+
<option value="UT">Utah</option>
88+
<option value="VT">Vermont</option>
89+
<option value="VI">Virgin Islands</option>
90+
<option value="VA">Virginia</option>
91+
<option value="WA">Washington</option>
92+
<option value="WV">West Virginia</option>
93+
<option value="WI">Wisconsin</option>
94+
<option value="WY">Wyoming</option>
95+
</select>
96+
</div>
97+
98+
</body>
99+
</html>
Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,25 @@
1+
/*
2+
* selectmenu_tickets.js
3+
*/
4+
(function($) {
5+
6+
module("selectmenu: tickets");
7+
8+
test('#241 - "focus" doesn\'t bubble', function() {
9+
// https://github.com/fnagel/jquery-ui/issues/241
10+
expect(4);
11+
12+
el = $('#selectmenu').selectmenu();
13+
14+
$('.ui-selectmenu').mousedown();
15+
ok($('.ui-selectmenu-menu').hasClass('ui-selectmenu-open'), 'selectmenu menu element should be visible');
16+
ok($('.ui-selectmenu-menu li:eq(0)').hasClass('ui-selectmenu-item-focus'), 'first item should have focus');
17+
18+
$('.ui-selectmenu-menu-dropdown').simulate('keydown', { keyCode: $.ui.keyCode.DOWN });
19+
ok($('.ui-selectmenu-menu li:eq(1)').hasClass('ui-selectmenu-item-focus'), 'after down arrow press, second item should have focus');
20+
21+
$('.ui-selectmenu-menu-dropdown').simulate('keypress', { keyCode: 'a'.charCodeAt(0) });
22+
ok($('.ui-selectmenu-menu li:eq(2)').hasClass('ui-selectmenu-item-focus'), 'after "a" key press, third item should have focus');
23+
});
24+
25+
})(jQuery);

ui/jquery.ui.selectmenu.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -308,7 +308,12 @@ $.widget("ui.selectmenu", {
308308
href : '#nogo',
309309
tabindex : -1,
310310
role : 'option',
311-
'aria-selected' : false
311+
'aria-selected' : false,
312+
focus: function() {
313+
314+
// bubble the focus event
315+
$(this).parent().focus();
316+
}
312317
};
313318
if ( selectOptionData[ i ].disabled ) {
314319
thisAAttr[ 'aria-disabled' ] = selectOptionData[ i ].disabled;

0 commit comments

Comments
 (0)