Pls проверит эту ссылку, http://ervaarelburg.nl/index1.html
У меня проблема в подменю, это JS для подменю http://pastebin.com/MrJPDvct
Поэтому я хочу, когда я нажимаю ссылки на меню, подменю открывается, и, щелкнув в другом месте, подменю исчезает. Проблема в том, когда я его открываю, он автоматически исчезает из-за этого кода
$('html,body').click(function(event) {
if(event.target.id == 'flip' || event.target.id == 'panel0' || event.target.id == 'panel1' || event.target.id == 'panel2' || event.target.id == 'panel3' || event.target.id == 'panel4' || event.target.id == 'panel5' || event.target.id == 'panel6'){
$(".submenu").fadeIn("slow");
}else{
$(".submenu").fadeOut("slow");
}
});
аналогично этому, http://ervaarelburg.nl/
но я хочу изменить код для index1.html
чтобы вы могли помочь в этом?
Заранее спасибо
Попробуй это
Добавить event.stopPropagation();
каждому .item
и для затухания при щелчке вне элемента добавьте это
$('html').click(function() {
for(var i=6;i<=10;i++){
$("#panel"+i).fadeOut("slow");
}
for(var i=0;i<=4;i++){
$("#panel"+i).fadeOut("slow");
}
});
Надеюсь, это поможет, спасибо
Было бы намного проще использовать более определенный селектор, а затем проверить event.target несколько раз в предложении if/else. Попробуйте что-то вроде этого:
var isOpen = false;
// Clicking on the actual anchors shows in the submenu
$('#flip > ul li > a' ).on( 'click', function( e ) {
e.preventDefault();
$(".submenu").fadeIn( "slow", function() { isOpen = true; } );
});
$( document ).on( 'click', function( e ) {
// If you clicked in the document, as long as you didn't click one of the
// triggers, then close the menu.
if( isOpen && ( $.inArray( e.target, $('#flip > ul > li > a' ) ) === -1 ) ) {
$(".submenu").fadeOut("slow", function() { isOpen = false; } );
}
});
JsFiddle: http://jsfiddle.net/grammar/qEfbT/
Надеюсь это поможет