Skip to content
This repository was archived by the owner on Oct 8, 2021. It is now read-only.

Commit 3df9b3b

Browse files
cgackarschmitz
authored andcommitted
Panel: use self._off for panelclose instead of document.off
Fixes gh-7058 Closes gh-7260
1 parent 66efe74 commit 3df9b3b

File tree

3 files changed

+45
-3
lines changed

3 files changed

+45
-3
lines changed

js/widgets/panel.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -299,7 +299,7 @@ $.widget( "mobile.panel", {
299299
o = self.options,
300300

301301
_openPanel = function() {
302-
self.document.off( "panelclose" );
302+
self._off( self.document , "panelclose" );
303303
self._page().jqmData( "panel", "open" );
304304

305305
if ( $.support.cssTransform3d && !!o.animate && o.display !== "overlay" ) {
@@ -362,8 +362,8 @@ $.widget( "mobile.panel", {
362362
self._trigger( "beforeopen" );
363363

364364
if ( self._page().jqmData( "panel" ) === "open" ) {
365-
self.document.on( "panelclose", function() {
366-
_openPanel();
365+
self._on( self.document, {
366+
"panelclose": "_openPanel"
367367
});
368368
} else {
369369
_openPanel();

tests/unit/panel/index.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -100,6 +100,16 @@ <h1 id="demo-links">Panels</h1>
100100
<a href="#panel-test-id-change">Open Panel</a>
101101
<a href="#panel-test-external">Open Panel</a>
102102
</div>
103+
104+
<div data-nstest-role="panel" id="panel-panelclose-event">
105+
<h1>Panel!</h1>
106+
</div>
107+
<div data-nstest-role="panel" id="panel-openfirst" data-position="left">
108+
<h1>first panel</h1>
109+
</div>
110+
<div data-nstest-role="panel" id="panel-opensecond" data-position="right">
111+
<h1>second panel</h1>
112+
</div>
103113
</div>
104114
<div data-nstest-role="page" id="page2"></div>
105115
<div id="external-panel-getWrapper-test"></div>

tests/unit/panel/panel_core.js

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -197,6 +197,38 @@
197197
$panel.panel();
198198
});
199199

200+
asyncTest( "panelclose not called on document", function() {
201+
expect( 2 );
202+
203+
$( document ).on( "panelopen", "#panel-panelclose-event", function() {
204+
$(this).panel("close");
205+
});
206+
207+
$( document ).on( "panelclose", "#panel-panelclose-event", function() {
208+
ok( true, "document panelclose event emitted" );
209+
});
210+
211+
$( document.body ).on( "panelclose", "#panel-panelclose-event", function() {
212+
ok( true, "document.body panelclose event emitted" );
213+
start();
214+
});
215+
216+
$( "#panel-panelclose-event" ).panel("open");
217+
218+
});
219+
220+
asyncTest( "should be able to open a second panel", function() {
221+
expect ( 1 );
222+
223+
$( document ).on( "panelopen", "#panel-opensecond", function() {
224+
ok( true, "second panel opened" );
225+
start();
226+
});
227+
228+
$( "#panel-openfirst" ).panel( "open" );
229+
$( "#panel-opensecond" ).panel( "open" );
230+
});
231+
200232
module( "dismissable panel", {
201233
setup: function(){
202234
$.Event.prototype.originalEvent = {

0 commit comments

Comments
 (0)