@@ -505,7 +505,7 @@ var // currently active contextMenu trigger
505
505
return ;
506
506
} else {
507
507
( opt . $selected && opt . $selected . parent ( ) || opt . $menu )
508
- . children ( ':not(.disabled, .not-selectable)' ) [ e . keyCode == 36 ? 'first' : 'last' ] ( )
508
+ . children ( ':not(.hidden, . disabled, .not-selectable)' ) [ e . keyCode == 36 ? 'first' : 'last' ] ( )
509
509
. trigger ( 'contextmenu:focus' ) ;
510
510
e . preventDefault ( ) ;
511
511
return ;
@@ -571,7 +571,7 @@ var // currently active contextMenu trigger
571
571
$round = $prev ;
572
572
573
573
// skip disabled
574
- while ( $prev . hasClass ( 'disabled' ) || $prev . hasClass ( 'not-selectable' ) ) {
574
+ while ( $prev . hasClass ( 'hidden' ) || $prev . hasClass ( ' disabled') || $prev . hasClass ( 'not-selectable' ) ) {
575
575
if ( $prev . prev ( ) . length ) {
576
576
$prev = $prev . prev ( ) ;
577
577
} else {
@@ -614,7 +614,7 @@ var // currently active contextMenu trigger
614
614
$round = $next ;
615
615
616
616
// skip disabled
617
- while ( $next . hasClass ( 'disabled' ) || $next . hasClass ( 'not-selectable' ) ) {
617
+ while ( $prev . hasClass ( 'hidden' ) || $ next. hasClass ( 'disabled' ) || $next . hasClass ( 'not-selectable' ) ) {
618
618
if ( $next . next ( ) . length ) {
619
619
$next = $next . next ( ) ;
620
620
} else {
@@ -693,7 +693,7 @@ var // currently active contextMenu trigger
693
693
( opt . $menu ? opt : root ) . $menu
694
694
. children ( '.hover' ) . trigger ( 'contextmenu:blur' ) ;
695
695
696
- if ( $this . hasClass ( 'disabled' ) || $this . hasClass ( 'not-selectable' ) ) {
696
+ if ( $prev . hasClass ( 'hidden' ) || $ this. hasClass ( 'disabled' ) || $this . hasClass ( 'not-selectable' ) ) {
697
697
opt . $selected = null ;
698
698
return ;
699
699
}
@@ -727,7 +727,7 @@ var // currently active contextMenu trigger
727
727
callback ;
728
728
729
729
// abort if the key is unknown or disabled or is a menu
730
- if ( ! opt . items [ key ] || $this . is ( '.disabled, .context-menu-submenu, .context-menu-separator, .not-selectable' ) ) {
730
+ if ( ! opt . items [ key ] || $this . is ( '.hidden, . disabled, .context-menu-submenu, .context-menu-separator, .not-selectable' ) ) {
731
731
return ;
732
732
}
733
733
@@ -1151,10 +1151,13 @@ var // currently active contextMenu trigger
1151
1151
var $item = $ ( this ) ,
1152
1152
key = $item . data ( 'contextMenuKey' ) ,
1153
1153
item = opt . items [ key ] ,
1154
- disabled = ( $ . isFunction ( item . disabled ) && item . disabled . call ( $trigger , key , root ) ) || item . disabled === true ;
1155
-
1154
+ disabled = ( $ . isFunction ( item . disabled ) && item . disabled . call ( $trigger , key , root ) ) || item . disabled === true ,
1155
+ hidden = ( $ . isFunction ( item . hidden ) && item . hidden . call ( $trigger , key , root ) ) || item . hidden === true ,
1156
+ selected = ( $ . isFunction ( item . selected ) ? item . selected . call ( $trigger , key , root ) ) : item . selected ) ;
1157
+
1156
1158
// dis- / enable item
1157
1159
$item [ disabled ? 'addClass' : 'removeClass' ] ( 'disabled' ) ;
1160
+ $item [ hidden ? 'addClass' : 'removeClass' ] ( 'hidden' ) ;
1158
1161
1159
1162
if ( item . type ) {
1160
1163
// dis- / enable input elements
@@ -1169,11 +1172,11 @@ var // currently active contextMenu trigger
1169
1172
1170
1173
case 'checkbox' :
1171
1174
case 'radio' :
1172
- item . $input . val ( item . value || "" ) . prop ( 'checked' , ! ! item . selected ) ;
1175
+ item . $input . val ( item . value || "" ) . prop ( 'checked' , ! ! selected ) ;
1173
1176
break ;
1174
1177
1175
1178
case 'select' :
1176
- item . $input . val ( item . selected || "" ) ;
1179
+ item . $input . val ( selected || "" ) ;
1177
1180
break ;
1178
1181
}
1179
1182
}
0 commit comments