From fe7c3003741cd5221e076235263df2b3d2fa9202 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jo=CC=88rn=20Zaefferer?= Date: Tue, 3 Dec 2013 21:54:08 +0100 Subject: [PATCH] Menu: Remove click binding that was supposed to prevent default on anchor clicks on a disabled menu. Not relevant anymore since we removed the anchors. Partial fix for #8802 - Dev: Track down uses of .bind() inside widgets --- tests/unit/menu/menu_events.js | 21 --------------------- ui/jquery.ui.menu.js | 12 +++--------- 2 files changed, 3 insertions(+), 30 deletions(-) diff --git a/tests/unit/menu/menu_events.js b/tests/unit/menu/menu_events.js index 3f834fd66..8fa77ab95 100644 --- a/tests/unit/menu/menu_events.js +++ b/tests/unit/menu/menu_events.js @@ -629,27 +629,6 @@ asyncTest( "handle keyboard navigation with spelling of menu items", function() element[ 0 ].focus(); }); -test( "ensure default is prevented when clicking on anchors in disabled menus ", function() { - expect( 1 ); - var element = $( "#menu1" ).menu(); - element.bind( "click.menu", function(event) { - if ( !event.isDefaultPrevented() ) { - log(); - } - }); - log( "click", true ); - click( element, "1" ); - log( "afterclick,disable" ); - element.menu( "option", "disabled", true ); - click( element, "2" ); - click( element, "3" ); - click( element, "1" ); - log( "enable" ); - element.menu( "option", "disabled", false ); - click( element, "3" ); - equal( logOutput(), "click,1,afterclick,disable,enable,3", "Click order not valid." ); -}); - test( "#9469: Stopping propagation in a select event should not suppress subsequent select events.", function() { expect( 1 ); var element = $( "#menu1" ).menu({ diff --git a/ui/jquery.ui.menu.js b/ui/jquery.ui.menu.js index 86ef4577e..f160f8e6b 100644 --- a/ui/jquery.ui.menu.js +++ b/ui/jquery.ui.menu.js @@ -39,7 +39,8 @@ $.widget( "ui.menu", { _create: function() { this.activeMenu = this.element; - // flag used to prevent firing of the click handler + + // Flag used to prevent firing of the click handler // as the event bubbles up through nested menus this.mouseHandled = false; this.element @@ -49,14 +50,7 @@ $.widget( "ui.menu", { .attr({ role: this.options.role, tabIndex: 0 - }) - // need to catch all clicks on disabled menu - // not possible through _on - .bind( "click" + this.eventNamespace, $.proxy(function( event ) { - if ( this.options.disabled ) { - event.preventDefault(); - } - }, this )); + }); if ( this.options.disabled ) { this.element -- 2.39.5