2010-08-11 6 views
0

на моем веб-сайте У меня есть панель боковой панели, которая имеет две вкладки, которые при нажатии переключают содержимое ниже. на <li> для этих вкладок У меня есть событие jQuery click() для переключения вкладок. Пожалуйста, обратитесь к Screengrab за то, что я имею в видуjQuery функция click() для элемента внутри другого элемента с щелчком()

alt text http://cci.epiphanydev2.co.uk/Home_1281538687319.png

Это все работает отлично, пока наш дизайнер не хотел ссылку RSS-канал внутри <li>, так что теперь, когда я нажимаю на значок RSS-каналов, то в настоящее время переопределён click() функция на <li>

Мой JQuery до сих пор для вкладок выглядит следующим образом:

//NEWS PANEL 
$("div.switch-tab div.listing-box").hide(); 
$(".news ul.tabs li:first").addClass("active").show(); 
$("div.switch-tab div.listing-box:first").show(); 

$(".news ul.tabs li").click(function() { 
    $(".news ul.tabs li").removeClass("active"); 
    $(this).addClass("active"); 
    $("div.switch-tab div.listing-box").hide(); 
    var activeTab = $(this).find("a").attr("href"); 
    $(activeTab).fadeIn(); 
    return false; 
}); 
// ATTEMPT TO OVERRIDE 
$(".news ul.tabs li a.feed").click(function() { 
    return true; 
}); 
//END NEWS PANEL 

Любая идея, как я могу обойти это?

ответ

2

event.stopPropagation() является то, что вы ищете: http://api.jquery.com/event.stopPropagation/

Вам нужно пройти в случае, а затем положить event.stopPropagation() в функция щелчка ваших каналов фида. Так что-то вроде этого:

// ATTEMPT TO OVERRIDE 
$(".news ul.tabs li a.feed").click(function(event) { 
    event.stopPropagation(); 
    return true; 
}); 

Это остановит событие щелчка от барботирования до содержащих родителей, в вашем случае, на вкладке <li>

Посмотреть демо здесь: http://jsfiddle.net/kjdeG/

2

Использование event.stopPropagation()

Смежные вопросы