jQuery使用click()为另一个元素中的元素提供不同的click()函数

时间:2010-08-11 15:20:23

标签: jquery

在我的网站上我有一个侧边栏面板,它有两个标签,点击后切换下面的内容。在这些标签的<li>上,我有一个jQuery click()事件来切换标签。请参阅screengrab我的意思

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

这一切都正常,直到我们的设计师想要<li>中的RSS提要链接,所以现在当我点击RSS提要图标时,它被click()上的<li>函数覆盖{1}}

到目前为止,我的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 个答案:

答案 0 :(得分:2)

使用event.stopPropagation()

答案 1 :(得分:2)

event.stopPropagation()正在寻找:http://api.jquery.com/event.stopPropagation/

您需要传递事件,然后将event.stopPropagation()放入Feed链接的点击功能中。所以做这样的事情:

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

这将阻止点击事件冒泡到包含父母,在您的情况下,标签<li>

在此处查看演示:http://jsfiddle.net/kjdeG/