Невозможно нажать на раскрывающуюся ссылку переключения - PullRequest
1 голос
/ 05 августа 2011

У меня проблемы с раскрывающимся списком переключателей корзины покупок. Когда я нажимаю раскрывающееся меню, ссылка не приводит меня к расположению ссылки, а делает все остальное.

Вот мое кодирование,я делаю что-то не так?Любая помощь будет отличной.

$(document).ready(function(){

// Drop Menu


$('.navigation > ul > li > a').click(function(e){
    if($(this).parent().hasClass('current')){
        $(this).parent().removeClass('current');
    }else{
        $(this).parent().addClass('current');
    }
    if($(this).parent().find('ul')){
        e.preventDefault();
    }
});

$('.shoppingbasket > ul > li').click(function(e){
    if($(this).hasClass('current')){
        $(this).removeClass('current');
    }else{
        $(this).addClass('current');
    }
    if($(this).parent().find('ul')){
        e.preventDefault();
    }
});

$(".navigation ul ul, .shoppingbasket ul ul").css({display: "none"});
$(".navigation ul li, .shoppingbasket ul li").click(function(){
    $(this).find('ul:first').slideToggle(400);
});
});

Ответы [ 2 ]

0 голосов
/ 05 августа 2011

В вашей разметке для ссылок корзины покупок единственное, что я вижу отличным от других ссылок, - это целевой атрибут.

<a class="visitshop" title="Visit Shop" href="http://www.media21a.co.uk/clientlogin/benaiahmatheson/products-page/" target="_parent">Visit the shop</a>

Попробуйте удалить этот атрибут:

target="_parent"
0 голосов
/ 05 августа 2011

В вашем коде мало проблем, попробуйте это

$(document).ready(function(){

// Drop Menu


$('.navigation > ul > li > a').click(function(e){
    var $parent = $(this).parent();
    if($parent.hasClass('current')){
        $parent.removeClass('current');
    }else{
        $parent.addClass('current');
    }   
    if($parent.find('ul').length > 0){
        e.preventDefault();
    }
});

$('.shoppingbasket > ul > li').click(function(e){
    var $this = $(this);
    if($this.hasClass('current')){
        $this.removeClass('current');
    }else{
        $this.addClass('current');
    }   
    if($this.parent().find('ul').length){
        e.preventDefault();
    }
});

//This will stop the event propagation from sub menus    
$('ul.sub-menu').click(function(e){
  e.stopPropagation();
});

$(".navigation ul ul, .shoppingbasket ul ul").css({display: "none"});
$(".navigation ul li, .shoppingbasket ul li").click(function(){
    $(this).find('ul:first').slideToggle(400);
});
});
...