File tree Expand file tree Collapse file tree 3 files changed +17
-5
lines changed Expand file tree Collapse file tree 3 files changed +17
-5
lines changed Original file line number Diff line number Diff line change @@ -79,12 +79,19 @@ structure (see [jQueryUI menu] for details):
79
79
Type: <code>String</code><br>
80
80
A selector to filter the elements that trigger the context menu.
81
81
</dd >
82
+ <dt >ignoreParentSelect</dt >
83
+ <dd >
84
+ Type: <code>Boolean</code>, default: <code>true</code><br>
85
+ If <code>true</code>, a click on a menu item that contains a sub-menu, will <em>not</em>
86
+ trigger the <code>select</code> event.
87
+ </dd >
82
88
<dt >menu</dt >
83
89
<dd >
84
90
Type: <code>String | jQuery | function</code><br>
85
91
jQuery object or selector (or function returning such) of HTML markup that defines the context menu
86
92
structure (see [jQueryUI menu] for details).
87
93
</dd >
94
+
88
95
</dl >
89
96
90
97
Original file line number Diff line number Diff line change 18
18
version : "0.0.1" ,
19
19
options : {
20
20
delegate : "[data-menu]" , // selector
21
+ ignoreParentSelect : true , // Don't trigger 'select' for sub-menu parents
21
22
menu : null , // selector or jQuery or a function returning such
22
23
taphold : 2000 , // open menu after 2000 ms long touch
23
24
// Events:
100
101
select : function ( event , ui ) {
101
102
// Also pass the target that the menu was triggered on:
102
103
event . relatedTarget = openEvent . target ;
103
- if ( self . _trigger . call ( self , "select" , event , ui ) !== false ) {
104
- self . _closeMenu . call ( self ) ;
105
- }
104
+ var isParent = ( ui . item . has ( ">a[aria-haspopup='true']" ) . length > 0 ) ;
105
+ if ( ! isParent || ! self . options . ignoreParentSelect ) {
106
+ if ( self . _trigger . call ( self , "select" , event , ui ) !== false ) {
107
+ self . _closeMenu . call ( self ) ;
108
+ }
109
+ }
106
110
}
107
111
} ) ;
108
112
// Register global event handlers that close the dropdown-menu
117
121
}
118
122
} ) ;
119
123
$menu
120
- . show ( ) // required to fix positioning error (issue #)
124
+ . show ( ) // required to fix positioning error (issue #3 )
121
125
. css ( {
122
126
position : "absolute" ,
123
127
left : 0 ,
Original file line number Diff line number Diff line change 27
27
$ ( function ( ) {
28
28
$ ( "#container" ) . contextmenu ( {
29
29
delegate : ".hasmenu" ,
30
+ // ignoreParentSelect: false,
30
31
menu : "#options" ,
31
32
focus : function ( event , ui ) {
32
33
var menuId = ui . item . find ( ">a" ) . attr ( "href" ) ;
36
37
$ ( "#info" ) . text ( "" ) ;
37
38
} ,
38
39
beforeOpen : function ( event ) {
39
- // alert("beforeopen on " + $(event.relatedTarget).text());
40
+ alert ( "beforeopen on " + $ ( event . relatedTarget ) . text ( ) ) ;
40
41
} ,
41
42
open : function ( event , ui ) {
42
43
// alert("open on " + $(event.relatedTarget).text());
You can’t perform that action at this time.
0 commit comments