Version Description
- Added: Option to show count of number of child links
- Edit: Plugin updated to use jquery plugin version 2.3
- Edit: Cookie name set based on widget ID
Download this release
Release Info
Developer | remix4 |
Plugin | JQuery Accordion Menu Widget |
Version | 2.2 |
Comparing to | |
See all releases |
Code changes from version 2.1 to 2.2
- dcwp_jquery_accordion.php +2 -2
- dcwp_jquery_accordion_widget.php +12 -1
- js/jquery.dcjqaccordion.2.0.js +0 -205
- js/{jquery.dcjqaccordion.2.1.js → jquery.dcjqaccordion.2.3.js} +90 -124
- readme.txt +8 -2
- screenshot-1.png +0 -0
dcwp_jquery_accordion.php
CHANGED
@@ -5,7 +5,7 @@
|
|
5 |
Tags: jquery, dropdown, menu, vertical accordion, animated, css, navigation, accordion
|
6 |
Description: Creates a widget, which allows you to create vertical accordion menus from any Wordpress custom menu using jQuery. Features include - handles multiple levels, saved state using cookies and option of selecting "click" or "hover" events for triggering the menu.
|
7 |
Author: Lee Chestnutt
|
8 |
-
Version: 2.
|
9 |
Author URI: http://www.designchemical.com
|
10 |
*/
|
11 |
|
@@ -24,7 +24,7 @@ class dc_jqaccordion {
|
|
24 |
wp_enqueue_script( 'jquery' );
|
25 |
wp_enqueue_script( 'jqueryhoverintent', dc_jqaccordion::get_plugin_directory() . '/js/jquery.hoverIntent.minified.js', array('jquery') );
|
26 |
wp_enqueue_script( 'jquerycookie', dc_jqaccordion::get_plugin_directory() . '/js/jquery.cookie.js', array('jquery') );
|
27 |
-
wp_enqueue_script( 'dcjqaccordion', dc_jqaccordion::get_plugin_directory() . '/js/jquery.dcjqaccordion.2.
|
28 |
}
|
29 |
add_action( 'wp_footer', array('dc_jqaccordion', 'footer') );
|
30 |
|
5 |
Tags: jquery, dropdown, menu, vertical accordion, animated, css, navigation, accordion
|
6 |
Description: Creates a widget, which allows you to create vertical accordion menus from any Wordpress custom menu using jQuery. Features include - handles multiple levels, saved state using cookies and option of selecting "click" or "hover" events for triggering the menu.
|
7 |
Author: Lee Chestnutt
|
8 |
+
Version: 2.2
|
9 |
Author URI: http://www.designchemical.com
|
10 |
*/
|
11 |
|
24 |
wp_enqueue_script( 'jquery' );
|
25 |
wp_enqueue_script( 'jqueryhoverintent', dc_jqaccordion::get_plugin_directory() . '/js/jquery.hoverIntent.minified.js', array('jquery') );
|
26 |
wp_enqueue_script( 'jquerycookie', dc_jqaccordion::get_plugin_directory() . '/js/jquery.cookie.js', array('jquery') );
|
27 |
+
wp_enqueue_script( 'dcjqaccordion', dc_jqaccordion::get_plugin_directory() . '/js/jquery.dcjqaccordion.2.3.js', array('jquery') );
|
28 |
}
|
29 |
add_action( 'wp_footer', array('dc_jqaccordion', 'footer') );
|
30 |
|
dcwp_jquery_accordion_widget.php
CHANGED
@@ -32,6 +32,7 @@ class dc_jqaccordion_widget extends WP_Widget {
|
|
32 |
'menuClose' => 'on',
|
33 |
'autoClose' => 'on',
|
34 |
'saveState' => 'on',
|
|
|
35 |
'speed' => 'slow',
|
36 |
'disableLink' => 'on',
|
37 |
'skin' => 'demo.css'
|
@@ -81,6 +82,7 @@ class dc_jqaccordion_widget extends WP_Widget {
|
|
81 |
$instance['menuClose'] = $new_instance['menuClose'];
|
82 |
$instance['saveState'] = $new_instance['saveState'];
|
83 |
$instance['disableLink'] = $new_instance['disableLink'];
|
|
|
84 |
$instance['classParent'] = strip_tags( stripslashes($new_instance['classParent']) );
|
85 |
$instance['classActive'] = strip_tags( stripslashes($new_instance['classActive']) );
|
86 |
$instance['event'] = strip_tags( stripslashes($new_instance['event']) );
|
@@ -99,6 +101,7 @@ class dc_jqaccordion_widget extends WP_Widget {
|
|
99 |
if(! isset($instance['saveState']) ){ $instance['saveState'] = 'false'; }
|
100 |
if(! isset($instance['menuClose']) ){ $instance['menuClose'] = 'false'; }
|
101 |
if(! isset($instance['disableLink']) ){ $instance['disableLink'] = 'false'; }
|
|
|
102 |
$classParent = isset( $instance['classParent'] ) ? $instance['classParent'] : '';
|
103 |
$classActive = isset( $instance['classActive'] ) ? $instance['classActive'] : '';
|
104 |
$event = isset( $instance['event'] ) ? $instance['event'] : '';
|
@@ -150,7 +153,10 @@ class dc_jqaccordion_widget extends WP_Widget {
|
|
150 |
<label for="<?php echo $this->get_field_id('disableLink'); ?>"><?php _e( 'Disable Parent Links' , 'dcjq-accordion' ); ?></label><br />
|
151 |
|
152 |
<input type="checkbox" value="true" class="checkbox" id="<?php echo $this->get_field_id('menuClose'); ?>" name="<?php echo $this->get_field_name('menuClose'); ?>"<?php checked( $menuClose, 'true' ); ?> />
|
153 |
-
<label for="<?php echo $this->get_field_id('menuClose'); ?>"><?php _e( 'Close Menu (hover only)' , 'dcjq-accordion' ); ?></label
|
|
|
|
|
|
|
154 |
</p>
|
155 |
<p>
|
156 |
<label for="<?php echo $this->get_field_id('hoverDelay'); ?>"><?php _e('Hover Delay:', 'dcjq-accordion'); ?>
|
@@ -248,6 +254,9 @@ class dc_jqaccordion_widget extends WP_Widget {
|
|
248 |
|
249 |
$menuClose = $wpdcjqaccordion['menuClose'];
|
250 |
if($menuClose == ''){$menuClose = 'false';};
|
|
|
|
|
|
|
251 |
|
252 |
$hoverDelay = $wpdcjqaccordion['hoverDelay'];
|
253 |
if($hoverDelay == ''){$hoverDelay = 600;};
|
@@ -263,7 +272,9 @@ class dc_jqaccordion_widget extends WP_Widget {
|
|
263 |
menuClose: <?php echo $menuClose; ?>,
|
264 |
autoClose: <?php echo $autoClose; ?>,
|
265 |
saveState: <?php echo $saveState; ?>,
|
|
|
266 |
disableLink: <?php echo $disableLink; ?>,
|
|
|
267 |
speed: '<?php echo $wpdcjqaccordion['speed']; ?>'
|
268 |
});
|
269 |
});
|
32 |
'menuClose' => 'on',
|
33 |
'autoClose' => 'on',
|
34 |
'saveState' => 'on',
|
35 |
+
'showCount' => 'off',
|
36 |
'speed' => 'slow',
|
37 |
'disableLink' => 'on',
|
38 |
'skin' => 'demo.css'
|
82 |
$instance['menuClose'] = $new_instance['menuClose'];
|
83 |
$instance['saveState'] = $new_instance['saveState'];
|
84 |
$instance['disableLink'] = $new_instance['disableLink'];
|
85 |
+
$instance['showCount'] = $new_instance['showCount'];
|
86 |
$instance['classParent'] = strip_tags( stripslashes($new_instance['classParent']) );
|
87 |
$instance['classActive'] = strip_tags( stripslashes($new_instance['classActive']) );
|
88 |
$instance['event'] = strip_tags( stripslashes($new_instance['event']) );
|
101 |
if(! isset($instance['saveState']) ){ $instance['saveState'] = 'false'; }
|
102 |
if(! isset($instance['menuClose']) ){ $instance['menuClose'] = 'false'; }
|
103 |
if(! isset($instance['disableLink']) ){ $instance['disableLink'] = 'false'; }
|
104 |
+
if(! isset($instance['showCount']) ){ $instance['showCount'] = 'false'; }
|
105 |
$classParent = isset( $instance['classParent'] ) ? $instance['classParent'] : '';
|
106 |
$classActive = isset( $instance['classActive'] ) ? $instance['classActive'] : '';
|
107 |
$event = isset( $instance['event'] ) ? $instance['event'] : '';
|
153 |
<label for="<?php echo $this->get_field_id('disableLink'); ?>"><?php _e( 'Disable Parent Links' , 'dcjq-accordion' ); ?></label><br />
|
154 |
|
155 |
<input type="checkbox" value="true" class="checkbox" id="<?php echo $this->get_field_id('menuClose'); ?>" name="<?php echo $this->get_field_name('menuClose'); ?>"<?php checked( $menuClose, 'true' ); ?> />
|
156 |
+
<label for="<?php echo $this->get_field_id('menuClose'); ?>"><?php _e( 'Close Menu (hover only)' , 'dcjq-accordion' ); ?></label><br />
|
157 |
+
|
158 |
+
<input type="checkbox" value="true" class="checkbox" id="<?php echo $this->get_field_id('showCount'); ?>" name="<?php echo $this->get_field_name('showCount'); ?>"<?php checked( $showCount, 'true' ); ?> />
|
159 |
+
<label for="<?php echo $this->get_field_id('showCount'); ?>"><?php _e( 'Show Count' , 'dcjq-accordion' ); ?></label><br />
|
160 |
</p>
|
161 |
<p>
|
162 |
<label for="<?php echo $this->get_field_id('hoverDelay'); ?>"><?php _e('Hover Delay:', 'dcjq-accordion'); ?>
|
254 |
|
255 |
$menuClose = $wpdcjqaccordion['menuClose'];
|
256 |
if($menuClose == ''){$menuClose = 'false';};
|
257 |
+
|
258 |
+
$showCount = $wpdcjqaccordion['showCount'];
|
259 |
+
if($showCount == ''){$showCount = 'false';};
|
260 |
|
261 |
$hoverDelay = $wpdcjqaccordion['hoverDelay'];
|
262 |
if($hoverDelay == ''){$hoverDelay = 600;};
|
272 |
menuClose: <?php echo $menuClose; ?>,
|
273 |
autoClose: <?php echo $autoClose; ?>,
|
274 |
saveState: <?php echo $saveState; ?>,
|
275 |
+
showCount: <?php echo $showCount; ?>,
|
276 |
disableLink: <?php echo $disableLink; ?>,
|
277 |
+
cookie: '<?php echo $widget_id; ?>',
|
278 |
speed: '<?php echo $wpdcjqaccordion['speed']; ?>'
|
279 |
});
|
280 |
});
|
js/jquery.dcjqaccordion.2.0.js
DELETED
@@ -1,205 +0,0 @@
|
|
1 |
-
/*
|
2 |
-
* DC jQuery Accordion - jQuery accordion menu widget
|
3 |
-
* Copyright (c) 2011 Design Chemical
|
4 |
-
*
|
5 |
-
* Dual licensed under the MIT and GPL licenses:
|
6 |
-
* http://www.opensource.org/licenses/mit-license.php
|
7 |
-
* http://www.gnu.org/licenses/gpl.html
|
8 |
-
*
|
9 |
-
*/
|
10 |
-
(function($){
|
11 |
-
|
12 |
-
//define the new for the plugin ans how to call it
|
13 |
-
|
14 |
-
$.fn.dcAccordion = function(options) {
|
15 |
-
//set default options
|
16 |
-
var defaults = {
|
17 |
-
classParent : 'dcjq-parent',
|
18 |
-
classActive : 'active',
|
19 |
-
eventType : 'click',
|
20 |
-
hoverDelay : 300,
|
21 |
-
menuClose : true,
|
22 |
-
autoClose : true,
|
23 |
-
speed : 'slow',
|
24 |
-
saveState : true,
|
25 |
-
disableLink : true
|
26 |
-
};
|
27 |
-
|
28 |
-
//call in the default otions
|
29 |
-
var options = $.extend(defaults, options);
|
30 |
-
var $dcAccordionItem = this;
|
31 |
-
|
32 |
-
//act upon the element that is passed into the design
|
33 |
-
return $dcAccordionItem.each(function(options){
|
34 |
-
|
35 |
-
setUpAccordion();
|
36 |
-
|
37 |
-
if(defaults.saveState == true){
|
38 |
-
cookieId = $(this).parent().attr('id');
|
39 |
-
checkCookie();
|
40 |
-
}
|
41 |
-
resetAccordion();
|
42 |
-
|
43 |
-
if(defaults.eventType == 'hover'){
|
44 |
-
|
45 |
-
var config = {
|
46 |
-
sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
|
47 |
-
interval: defaults.hoverDelay, // number = milliseconds for onMouseOver polling interval
|
48 |
-
over: linkOver, // function = onMouseOver callback (REQUIRED)
|
49 |
-
timeout: defaults.hoverDelay, // number = milliseconds delay before onMouseOut
|
50 |
-
out: linkOut // function = onMouseOut callback (REQUIRED)
|
51 |
-
};
|
52 |
-
$('li a',$dcAccordionItem).hoverIntent(config);
|
53 |
-
|
54 |
-
var configMenu = {
|
55 |
-
sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
|
56 |
-
interval: 1000, // number = milliseconds for onMouseOver polling interval
|
57 |
-
over: menuOver, // function = onMouseOver callback (REQUIRED)
|
58 |
-
timeout: 1000, // number = milliseconds delay before onMouseOut
|
59 |
-
out: menuOut // function = onMouseOut callback (REQUIRED)
|
60 |
-
};
|
61 |
-
$($dcAccordionItem).hoverIntent(configMenu);
|
62 |
-
|
63 |
-
// Disable parent links
|
64 |
-
if(defaults.disableLink == true){
|
65 |
-
$('li a',$dcAccordionItem).click(function(e){
|
66 |
-
if($(this).next('ul').length >0){
|
67 |
-
e.preventDefault();
|
68 |
-
}
|
69 |
-
});
|
70 |
-
}
|
71 |
-
|
72 |
-
} else {
|
73 |
-
|
74 |
-
$('li a',$dcAccordionItem).click(function(e){
|
75 |
-
|
76 |
-
$activeLi = $(this).parent('li');
|
77 |
-
$parentsLi = $activeLi.parents('li');
|
78 |
-
$parentsUl = $activeLi.parents('ul');
|
79 |
-
|
80 |
-
// Prevent browsing to link if has child links
|
81 |
-
if(defaults.disableLink == true){
|
82 |
-
if($(this).next('ul').length >0){
|
83 |
-
e.preventDefault();
|
84 |
-
}
|
85 |
-
}
|
86 |
-
|
87 |
-
// Auto close sibling menus
|
88 |
-
if(defaults.autoClose == true){
|
89 |
-
autoCloseAccordion($parentsLi, $parentsUl);
|
90 |
-
}
|
91 |
-
|
92 |
-
if ($('> ul',$activeLi).is(':visible')){
|
93 |
-
$('ul',$activeLi).slideUp(defaults.speed);
|
94 |
-
$('a',$activeLi).removeClass(defaults.classActive);
|
95 |
-
} else {
|
96 |
-
$(this).next().slideToggle(defaults.speed);
|
97 |
-
$('> a',$activeLi).addClass(defaults.classActive);
|
98 |
-
}
|
99 |
-
|
100 |
-
// Write cookie if save state is on
|
101 |
-
if(defaults.saveState == true){
|
102 |
-
createCookie();
|
103 |
-
}
|
104 |
-
});
|
105 |
-
}
|
106 |
-
// Set up accordion
|
107 |
-
function setUpAccordion(){
|
108 |
-
$arrow = '<span class="dcjq-icon"></span>';
|
109 |
-
$('> ul',$dcAccordionItem).show();
|
110 |
-
$('li',$dcAccordionItem).each(function(){
|
111 |
-
var classParentLi = defaults.classParent+'-li';
|
112 |
-
if($('> ul',this).length > 0){
|
113 |
-
$(this).addClass(classParentLi);
|
114 |
-
$('> a',this).addClass(defaults.classParent).append($arrow);
|
115 |
-
}
|
116 |
-
});
|
117 |
-
$('> ul',$dcAccordionItem).hide();
|
118 |
-
}
|
119 |
-
});
|
120 |
-
|
121 |
-
function linkOver(){
|
122 |
-
|
123 |
-
$activeLi = $(this).parent('li');
|
124 |
-
$parentsLi = $activeLi.parents('li');
|
125 |
-
$parentsUl = $activeLi.parents('ul');
|
126 |
-
|
127 |
-
// Auto close sibling menus
|
128 |
-
if(defaults.autoClose == true){
|
129 |
-
autoCloseAccordion($parentsLi, $parentsUl);
|
130 |
-
}
|
131 |
-
|
132 |
-
if ($('> ul',$activeLi).is(':visible')){
|
133 |
-
$('ul',$activeLi).slideUp(defaults.speed);
|
134 |
-
$('a',$activeLi).removeClass(defaults.classActive);
|
135 |
-
} else {
|
136 |
-
$(this).next().slideToggle(defaults.speed);
|
137 |
-
$('> a',$activeLi).addClass(defaults.classActive);
|
138 |
-
}
|
139 |
-
|
140 |
-
// Write cookie if save state is on
|
141 |
-
if(defaults.saveState == true){
|
142 |
-
createCookie();
|
143 |
-
}
|
144 |
-
|
145 |
-
}
|
146 |
-
|
147 |
-
function linkOut(){
|
148 |
-
}
|
149 |
-
|
150 |
-
function menuOver(){
|
151 |
-
}
|
152 |
-
|
153 |
-
function menuOut(){
|
154 |
-
if(defaults.menuClose == true){
|
155 |
-
$('ul',$dcAccordionItem).slideUp(defaults.speed);
|
156 |
-
// Reset active links
|
157 |
-
$('a',$dcAccordionItem).removeClass(defaults.classActive);
|
158 |
-
createCookie();
|
159 |
-
}
|
160 |
-
}
|
161 |
-
|
162 |
-
// Auto-Close Open Menu Items
|
163 |
-
function autoCloseAccordion($parentsLi, $parentsUl){
|
164 |
-
$('ul',$dcAccordionItem).not($parentsUl).slideUp(defaults.speed);
|
165 |
-
// Reset active links
|
166 |
-
$('a',$dcAccordionItem).removeClass(defaults.classActive);
|
167 |
-
$('> a',$parentsLi).addClass(defaults.classActive);
|
168 |
-
}
|
169 |
-
|
170 |
-
// Retrieve cookie value and set active items
|
171 |
-
function checkCookie(){
|
172 |
-
var cookieVal = $.cookie(cookieId);
|
173 |
-
if(cookieVal != null){
|
174 |
-
// create array from cookie string
|
175 |
-
var activeArray = cookieVal.split(',');
|
176 |
-
$.each(activeArray, function(index,value){
|
177 |
-
var $cookieLi = $('li:eq('+value+')',$dcAccordionItem);
|
178 |
-
$('> a',$cookieLi).addClass(defaults.classActive);
|
179 |
-
var $parentsLi = $cookieLi.parents('li');
|
180 |
-
$('> a',$parentsLi).addClass(defaults.classActive);
|
181 |
-
});
|
182 |
-
}
|
183 |
-
}
|
184 |
-
|
185 |
-
// Reset accordion using active links
|
186 |
-
function resetAccordion(){
|
187 |
-
$('ul',$dcAccordionItem).hide();
|
188 |
-
$allActiveLi = $('a.'+defaults.classActive,$dcAccordionItem);
|
189 |
-
$allActiveLi.next().show();
|
190 |
-
}
|
191 |
-
|
192 |
-
// Write cookie
|
193 |
-
function createCookie(){
|
194 |
-
var activeIndex = [];
|
195 |
-
// Create array of active items index value
|
196 |
-
$('li a.active',$dcAccordionItem).each(function(i){
|
197 |
-
var $arrayItem = $(this).parent('li');
|
198 |
-
var itemIndex = $('li',$dcAccordionItem).index($arrayItem);
|
199 |
-
activeIndex.push(itemIndex);
|
200 |
-
});
|
201 |
-
// Store in cookie
|
202 |
-
$.cookie(cookieId, activeIndex, { path: '/' });
|
203 |
-
}
|
204 |
-
};
|
205 |
-
})(jQuery);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
js/{jquery.dcjqaccordion.2.1.js → jquery.dcjqaccordion.2.3.js}
RENAMED
@@ -1,206 +1,172 @@
|
|
1 |
/*
|
2 |
-
* DC jQuery Accordion - jQuery accordion menu
|
3 |
* Copyright (c) 2011 Design Chemical
|
4 |
*
|
5 |
* Dual licensed under the MIT and GPL licenses:
|
6 |
* http://www.opensource.org/licenses/mit-license.php
|
7 |
* http://www.gnu.org/licenses/gpl.html
|
8 |
*
|
9 |
-
*/
|
10 |
-
(function($){
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
$.fn.dcAccordion = function(options) {
|
15 |
-
//set default options
|
16 |
var defaults = {
|
17 |
classParent : 'dcjq-parent',
|
18 |
-
classActive : 'active',
|
19 |
eventType : 'click',
|
20 |
hoverDelay : 300,
|
21 |
menuClose : true,
|
22 |
autoClose : true,
|
23 |
speed : 'slow',
|
24 |
saveState : true,
|
25 |
-
disableLink : true
|
26 |
-
|
27 |
-
|
28 |
//call in the default otions
|
29 |
-
var options = $.extend(defaults, options);
|
30 |
-
|
31 |
-
|
32 |
-
return this.each(function(options){
|
33 |
-
|
34 |
-
var $dcAccordionItem = this;
|
35 |
setUpAccordion();
|
36 |
-
|
37 |
if(defaults.saveState == true){
|
38 |
-
|
39 |
-
checkCookie();
|
40 |
}
|
41 |
-
resetAccordion();
|
42 |
-
|
43 |
-
if(defaults.eventType == 'hover'){
|
44 |
-
|
45 |
var config = {
|
46 |
sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
|
47 |
interval: defaults.hoverDelay, // number = milliseconds for onMouseOver polling interval
|
48 |
over: linkOver, // function = onMouseOver callback (REQUIRED)
|
49 |
timeout: defaults.hoverDelay, // number = milliseconds delay before onMouseOut
|
50 |
out: linkOut // function = onMouseOut callback (REQUIRED)
|
51 |
-
};
|
52 |
-
$('li a',$
|
53 |
-
|
54 |
var configMenu = {
|
55 |
sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
|
56 |
interval: 1000, // number = milliseconds for onMouseOver polling interval
|
57 |
over: menuOver, // function = onMouseOver callback (REQUIRED)
|
58 |
timeout: 1000, // number = milliseconds delay before onMouseOut
|
59 |
out: menuOut // function = onMouseOut callback (REQUIRED)
|
60 |
-
};
|
61 |
-
$($
|
62 |
-
|
63 |
// Disable parent links
|
64 |
-
if(defaults.disableLink == true){
|
65 |
-
$('li a',$
|
66 |
if($(this).next('ul').length >0){
|
67 |
e.preventDefault();
|
68 |
}
|
69 |
});
|
70 |
-
}
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
$('li a',$dcAccordionItem).click(function(e){
|
75 |
-
|
76 |
$activeLi = $(this).parent('li');
|
77 |
$parentsLi = $activeLi.parents('li');
|
78 |
-
$parentsUl = $activeLi.parents('ul');
|
79 |
-
|
80 |
// Prevent browsing to link if has child links
|
81 |
if(defaults.disableLink == true){
|
82 |
if($(this).next('ul').length >0){
|
83 |
e.preventDefault();
|
84 |
}
|
85 |
-
}
|
86 |
-
|
87 |
// Auto close sibling menus
|
88 |
if(defaults.autoClose == true){
|
89 |
autoCloseAccordion($parentsLi, $parentsUl);
|
90 |
-
}
|
91 |
-
|
92 |
if ($('> ul',$activeLi).is(':visible')){
|
93 |
$('ul',$activeLi).slideUp(defaults.speed);
|
94 |
$('a',$activeLi).removeClass(defaults.classActive);
|
95 |
} else {
|
96 |
$(this).next().slideToggle(defaults.speed);
|
97 |
$('> a',$activeLi).addClass(defaults.classActive);
|
98 |
-
}
|
99 |
-
|
100 |
// Write cookie if save state is on
|
101 |
if(defaults.saveState == true){
|
102 |
-
createCookie();
|
103 |
-
|
104 |
-
|
105 |
-
}
|
106 |
// Set up accordion
|
107 |
-
function setUpAccordion(){
|
108 |
-
$arrow = '<span class="
|
109 |
-
$('> ul',$
|
110 |
-
$('li',$
|
111 |
var classParentLi = defaults.classParent+'-li';
|
112 |
-
if($('> ul',this).length > 0){
|
113 |
-
$(this).addClass(
|
114 |
-
$('> a',this).addClass(defaults.classParent).append($arrow);
|
115 |
}
|
116 |
});
|
117 |
-
$('> ul',$
|
118 |
-
}
|
119 |
-
|
120 |
-
// Retrieve cookie value and set active items
|
121 |
-
function checkCookie(){
|
122 |
-
var cookieVal = $.cookie(cookieId);
|
123 |
-
if(cookieVal != null){
|
124 |
-
// create array from cookie string
|
125 |
-
var activeArray = cookieVal.split(',');
|
126 |
-
$.each(activeArray, function(index,value){
|
127 |
-
var $cookieLi = $('li:eq('+value+')',$dcAccordionItem);
|
128 |
-
$('> a',$cookieLi).addClass(defaults.classActive);
|
129 |
-
var $parentsLi = $cookieLi.parents('li');
|
130 |
-
$('> a',$parentsLi).addClass(defaults.classActive);
|
131 |
-
});
|
132 |
}
|
133 |
-
}
|
134 |
-
|
135 |
-
// Write cookie
|
136 |
-
function createCookie(){
|
137 |
-
var activeIndex = [];
|
138 |
-
|
139 |
-
// Create array of active items index value
|
140 |
-
$('li a.active',$dcAccordionItem).each(function(i){
|
141 |
-
var $arrayItem = $(this).parent('li');
|
142 |
-
var itemIndex = $('li',$dcAccordionItem).index($arrayItem);
|
143 |
-
activeIndex.push(itemIndex);
|
144 |
-
});
|
145 |
-
// Store in cookie
|
146 |
-
$.cookie(cookieId, activeIndex, { path: '/' });
|
147 |
-
}
|
148 |
-
|
149 |
-
function linkOver(){
|
150 |
-
|
151 |
$activeLi = $(this).parent('li');
|
152 |
$parentsLi = $activeLi.parents('li');
|
153 |
-
$parentsUl = $activeLi.parents('ul');
|
154 |
-
|
155 |
// Auto close sibling menus
|
156 |
if(defaults.autoClose == true){
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
if ($('> ul',$activeLi).is(':visible')){
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
// Write cookie if save state is on
|
169 |
if(defaults.saveState == true){
|
170 |
-
createCookie();
|
171 |
}
|
172 |
-
|
173 |
-
}
|
174 |
-
|
175 |
function linkOut(){
|
176 |
-
}
|
177 |
-
|
178 |
function menuOver(){
|
179 |
-
}
|
180 |
-
|
181 |
-
function menuOut(){
|
182 |
if(defaults.menuClose == true){
|
183 |
-
$('ul',$
|
184 |
// Reset active links
|
185 |
-
$('a',$
|
186 |
-
createCookie();
|
187 |
}
|
188 |
-
}
|
189 |
-
|
190 |
// Auto-Close Open Menu Items
|
191 |
function autoCloseAccordion($parentsLi, $parentsUl){
|
192 |
-
$('ul',$
|
193 |
// Reset active links
|
194 |
-
$('a',$
|
195 |
$('> a',$parentsLi).addClass(defaults.classActive);
|
196 |
-
}
|
197 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
198 |
// Reset accordion using active links
|
199 |
function resetAccordion(){
|
200 |
-
$('ul',$
|
201 |
-
$allActiveLi = $('a.'+defaults.classActive,$
|
202 |
$allActiveLi.next().show();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
203 |
}
|
204 |
-
});
|
205 |
};
|
206 |
})(jQuery);
|
1 |
/*
|
2 |
+
* DC jQuery Vertical Accordion Menu - jQuery vertical accordion menu plugin
|
3 |
* Copyright (c) 2011 Design Chemical
|
4 |
*
|
5 |
* Dual licensed under the MIT and GPL licenses:
|
6 |
* http://www.opensource.org/licenses/mit-license.php
|
7 |
* http://www.gnu.org/licenses/gpl.html
|
8 |
*
|
9 |
+
*/
|
10 |
+
(function($){
|
11 |
+
$.fn.dcAccordion = function(options) {
|
12 |
+
//set default options
|
|
|
|
|
|
|
13 |
var defaults = {
|
14 |
classParent : 'dcjq-parent',
|
15 |
+
classActive : 'active',
|
16 |
eventType : 'click',
|
17 |
hoverDelay : 300,
|
18 |
menuClose : true,
|
19 |
autoClose : true,
|
20 |
speed : 'slow',
|
21 |
saveState : true,
|
22 |
+
disableLink : true,
|
23 |
+
cookie : 'dcjq-accordion'
|
24 |
+
};
|
25 |
//call in the default otions
|
26 |
+
var options = $.extend(defaults, options);
|
27 |
+
var $dcAccordionObj = this;
|
28 |
+
return $dcAccordionObj.each(function(options){
|
|
|
|
|
|
|
29 |
setUpAccordion();
|
|
|
30 |
if(defaults.saveState == true){
|
31 |
+
checkCookie(defaults.cookie, $dcAccordionObj);
|
|
|
32 |
}
|
33 |
+
resetAccordion();
|
34 |
+
if(defaults.eventType == 'hover'){
|
|
|
|
|
35 |
var config = {
|
36 |
sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
|
37 |
interval: defaults.hoverDelay, // number = milliseconds for onMouseOver polling interval
|
38 |
over: linkOver, // function = onMouseOver callback (REQUIRED)
|
39 |
timeout: defaults.hoverDelay, // number = milliseconds delay before onMouseOut
|
40 |
out: linkOut // function = onMouseOut callback (REQUIRED)
|
41 |
+
};
|
42 |
+
$('li a',$dcAccordionObj).hoverIntent(config);
|
|
|
43 |
var configMenu = {
|
44 |
sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)
|
45 |
interval: 1000, // number = milliseconds for onMouseOver polling interval
|
46 |
over: menuOver, // function = onMouseOver callback (REQUIRED)
|
47 |
timeout: 1000, // number = milliseconds delay before onMouseOut
|
48 |
out: menuOut // function = onMouseOut callback (REQUIRED)
|
49 |
+
};
|
50 |
+
$($dcAccordionObj).hoverIntent(configMenu);
|
|
|
51 |
// Disable parent links
|
52 |
+
if(defaults.disableLink == true){
|
53 |
+
$('li a',$dcAccordionObj).click(function(e){
|
54 |
if($(this).next('ul').length >0){
|
55 |
e.preventDefault();
|
56 |
}
|
57 |
});
|
58 |
+
}
|
59 |
+
} else {
|
60 |
+
$('li a',$dcAccordionObj).click(function(e){
|
|
|
|
|
|
|
61 |
$activeLi = $(this).parent('li');
|
62 |
$parentsLi = $activeLi.parents('li');
|
63 |
+
$parentsUl = $activeLi.parents('ul');
|
|
|
64 |
// Prevent browsing to link if has child links
|
65 |
if(defaults.disableLink == true){
|
66 |
if($(this).next('ul').length >0){
|
67 |
e.preventDefault();
|
68 |
}
|
69 |
+
}
|
|
|
70 |
// Auto close sibling menus
|
71 |
if(defaults.autoClose == true){
|
72 |
autoCloseAccordion($parentsLi, $parentsUl);
|
73 |
+
}
|
|
|
74 |
if ($('> ul',$activeLi).is(':visible')){
|
75 |
$('ul',$activeLi).slideUp(defaults.speed);
|
76 |
$('a',$activeLi).removeClass(defaults.classActive);
|
77 |
} else {
|
78 |
$(this).next().slideToggle(defaults.speed);
|
79 |
$('> a',$activeLi).addClass(defaults.classActive);
|
80 |
+
}
|
|
|
81 |
// Write cookie if save state is on
|
82 |
if(defaults.saveState == true){
|
83 |
+
createCookie(defaults.cookie, $dcAccordionObj);
|
84 |
+
}
|
85 |
+
});
|
86 |
+
}
|
87 |
// Set up accordion
|
88 |
+
function setUpAccordion(){
|
89 |
+
$arrow = '<span class="'+defaults.classArrow+'"></span>';
|
90 |
+
$('> ul',$dcAccordionObj).show();
|
91 |
+
$('li',$dcAccordionObj).each(function(){
|
92 |
var classParentLi = defaults.classParent+'-li';
|
93 |
+
if($('> ul',this).length > 0){
|
94 |
+
$('> a',this).addClass(defaults.classParent).append($arrow);
|
|
|
95 |
}
|
96 |
});
|
97 |
+
$('> ul',$dcAccordionObj).hide();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
98 |
}
|
99 |
+
});
|
100 |
+
function linkOver(){
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
101 |
$activeLi = $(this).parent('li');
|
102 |
$parentsLi = $activeLi.parents('li');
|
103 |
+
$parentsUl = $activeLi.parents('ul');
|
|
|
104 |
// Auto close sibling menus
|
105 |
if(defaults.autoClose == true){
|
106 |
+
autoCloseAccordion($parentsLi, $parentsUl);
|
107 |
+
}
|
|
|
108 |
if ($('> ul',$activeLi).is(':visible')){
|
109 |
+
$('ul',$activeLi).slideUp(defaults.speed);
|
110 |
+
$('a',$activeLi).removeClass(defaults.classActive);
|
111 |
+
} else {
|
112 |
+
$(this).next().slideToggle(defaults.speed);
|
113 |
+
$('> a',$activeLi).addClass(defaults.classActive);
|
114 |
+
}
|
|
|
115 |
// Write cookie if save state is on
|
116 |
if(defaults.saveState == true){
|
117 |
+
createCookie(defaults.cookie, $dcAccordionObj);
|
118 |
}
|
119 |
+
}
|
|
|
|
|
120 |
function linkOut(){
|
121 |
+
}
|
|
|
122 |
function menuOver(){
|
123 |
+
}
|
124 |
+
function menuOut(){
|
|
|
125 |
if(defaults.menuClose == true){
|
126 |
+
$('ul',$dcAccordionObj).slideUp(defaults.speed);
|
127 |
// Reset active links
|
128 |
+
$('a',$dcAccordionObj).removeClass(defaults.classActive);
|
129 |
+
createCookie(defaults.cookie, $dcAccordionObj);
|
130 |
}
|
131 |
+
}
|
|
|
132 |
// Auto-Close Open Menu Items
|
133 |
function autoCloseAccordion($parentsLi, $parentsUl){
|
134 |
+
$('ul',$dcAccordionObj).not($parentsUl).slideUp(defaults.speed);
|
135 |
// Reset active links
|
136 |
+
$('a',$dcAccordionObj).removeClass(defaults.classActive);
|
137 |
$('> a',$parentsLi).addClass(defaults.classActive);
|
138 |
+
}
|
139 |
+
// Retrieve cookie value and set active items
|
140 |
+
function checkCookie(cookieId, obj){
|
141 |
+
var cookieVal = $.cookie(cookieId);
|
142 |
+
if(cookieVal != null){
|
143 |
+
// create array from cookie string
|
144 |
+
var activeArray = cookieVal.split(',');
|
145 |
+
$.each(activeArray, function(index,value){
|
146 |
+
var $cookieLi = $('li:eq('+value+')',obj);
|
147 |
+
$('> a',$cookieLi).addClass(defaults.classActive);
|
148 |
+
var $parentsLi = $cookieLi.parents('li');
|
149 |
+
$('> a',$parentsLi).addClass(defaults.classActive);
|
150 |
+
});
|
151 |
+
}
|
152 |
+
}
|
153 |
// Reset accordion using active links
|
154 |
function resetAccordion(){
|
155 |
+
$('ul',$dcAccordionObj).hide();
|
156 |
+
$allActiveLi = $('a.'+defaults.classActive,$dcAccordionObj);
|
157 |
$allActiveLi.next().show();
|
158 |
+
}
|
159 |
+
// Write cookie
|
160 |
+
function createCookie(cookieId, obj){
|
161 |
+
var activeIndex = [];
|
162 |
+
// Create array of active items index value
|
163 |
+
$('li a.'+defaults.classActive,obj).each(function(i){
|
164 |
+
var $arrayItem = $(this).parent('li');
|
165 |
+
var itemIndex = $('li',obj).index($arrayItem);
|
166 |
+
activeIndex.push(itemIndex);
|
167 |
+
});
|
168 |
+
// Store in cookie
|
169 |
+
$.cookie(cookieId, activeIndex, { path: '/' });
|
170 |
}
|
|
|
171 |
};
|
172 |
})(jQuery);
|
readme.txt
CHANGED
@@ -4,13 +4,13 @@ Donate link: http://www.designchemical.com
|
|
4 |
Tags: jquery, dropdown, menu, vertical accordion, animated, css, navigation, widget
|
5 |
Requires at least: 3.0
|
6 |
Tested up to: 3.1
|
7 |
-
Stable tag: 2.
|
8 |
|
9 |
Creates a widget, which allows you to create vertical accordion menus from any Wordpress custom menu using jQuery.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
-
Creates a widget, which allows you to create vertical accordion menus from any Wordpress custom menu using jQuery. Features include - handles multiple levels, saved state using cookies and option of selecting "click" or "hover" events for triggering the menu. Uses the jquery cookie plugin by [Klaus Hartl](http://www.stilbuero.de).
|
14 |
|
15 |
= Menu Options =
|
16 |
|
@@ -21,6 +21,7 @@ The widget has several parameters that can be configured to help cutomise the ve
|
|
21 |
* Save menu state (uses cookies) - Selecting this will allow the menu to remember its open/close state when browsing to a new page.
|
22 |
* Disable parent links - If selected, any menu items that have child elements will have their links disabled and will only open/close their relevant sub-menus. Do not select this if you want the user to still be able to browse to that item's page.
|
23 |
* Close menu (hover only) - If checked the menu will automatically fully close after 1 second when the mouse moves off the menu - only available if event type is "hover"
|
|
|
24 |
* Hover delay - This setting adds a delay to the hover event to help prevent the menu opening/closing accidentally. A higher number means the cursor must stop moving for longer before the menu action will trigger
|
25 |
* Animation Speed - The speed at which the menu will open/close
|
26 |
* Skin - Several sample skins are available to give examples of css that can be used to style your accordion menu
|
@@ -53,6 +54,11 @@ Another likely cause is due to other non-functioning plugins, which may have err
|
|
53 |
|
54 |
== Changelog ==
|
55 |
|
|
|
|
|
|
|
|
|
|
|
56 |
= 2.1 =
|
57 |
* Edit: Security for dynamic skins
|
58 |
|
4 |
Tags: jquery, dropdown, menu, vertical accordion, animated, css, navigation, widget
|
5 |
Requires at least: 3.0
|
6 |
Tested up to: 3.1
|
7 |
+
Stable tag: 2.2
|
8 |
|
9 |
Creates a widget, which allows you to create vertical accordion menus from any Wordpress custom menu using jQuery.
|
10 |
|
11 |
== Description ==
|
12 |
|
13 |
+
Creates a widget, which allows you to create vertical accordion menus from any Wordpress custom menu using jQuery. Features include - handles multiple levels, saved state using cookies, add count of number of links and option of selecting "click" or "hover" events for triggering the menu. Uses the jquery cookie plugin by [Klaus Hartl](http://www.stilbuero.de).
|
14 |
|
15 |
= Menu Options =
|
16 |
|
21 |
* Save menu state (uses cookies) - Selecting this will allow the menu to remember its open/close state when browsing to a new page.
|
22 |
* Disable parent links - If selected, any menu items that have child elements will have their links disabled and will only open/close their relevant sub-menus. Do not select this if you want the user to still be able to browse to that item's page.
|
23 |
* Close menu (hover only) - If checked the menu will automatically fully close after 1 second when the mouse moves off the menu - only available if event type is "hover"
|
24 |
+
* Show Count - If checked the menu will automatically add a count showing the number of links under each parent menu item
|
25 |
* Hover delay - This setting adds a delay to the hover event to help prevent the menu opening/closing accidentally. A higher number means the cursor must stop moving for longer before the menu action will trigger
|
26 |
* Animation Speed - The speed at which the menu will open/close
|
27 |
* Skin - Several sample skins are available to give examples of css that can be used to style your accordion menu
|
54 |
|
55 |
== Changelog ==
|
56 |
|
57 |
+
= 2.2 =
|
58 |
+
* Added: Option to show count of number of child links
|
59 |
+
* Edit: Plugin updated to use jquery plugin version 2.3
|
60 |
+
* Edit: Cookie name set based on widget ID
|
61 |
+
|
62 |
= 2.1 =
|
63 |
* Edit: Security for dynamic skins
|
64 |
|
screenshot-1.png
CHANGED
Binary file
|