1.
jQuery(document).ready(function($) {
//cache the `.menuImage` elements since they will be used frequently
var $menuImages = $(".menuImage").hide('slow');
$(".menuItem").click(function() {
//get the `.menuImage` element that is a child of the clicked element
var $ele = $(this).children(".menuImage");
//`.slideUp()` all the `.menuImage` elements that aren't a child of the clicked element
$menuImages.not($ele).slideUp(500);
//toggle the visibility of the child of the clicked element
$ele.slideToggle(500);
});
});
Демо: http://jsfiddle.net/jasper/XcJwW/17/
3.
jQuery(document).ready(function($) {
var $menuImages = $(".menuImage").hide('slow');
$(".menuItem").click(function() {
var $ele = $(this).children(".menuImage");
//not only slide the rest of the `.menuImage` elements away, but also remove the `hover` class from them
$menuImages.not($ele).slideUp(500).parent().removeClass('hover');
//not only toggle the view of the clicked `.menuImage` element, but also toggle the `hover` class for the element
$ele.slideToggle(500).parent().toggleClass('hover');
});
});
Это требует небольшой настройки вашего CSS:
#menu_row1 .menuItem:hover, #menu_row1 .menuItem.hover { background:#ff0000; }
#menu_row2 .menuItem:hover, #menu_row2 .menuItem.hover { background:#ffe100; }
#menu_row3 .menuItem:hover, #menu_row3 .menuItem.hover { background:#0033cc; }
Обратите внимание, что пользователь может либо hover
над одним из этих элементов, либо вы можете присвоить элементу класс hover
, оба будут иметь одинаковый результат.
Демо: http://jsfiddle.net/jasper/XcJwW/20/