结合多个jQuery

时间:2019-03-18 16:47:22

标签: jquery function class

我有以下两个功能都在做相同的事情,可以将这两个功能组合为一个功能吗?

$(document).ready(function(){
    $("#nav li").click(function(e) {
        e.preventDefault();
        $("#nav li").removeClass("current_page_item");
        $(this).closest("li").addClass("current_page_item");
    });
    $("#overlay li").click(function(e) {
        e.preventDefault();
        $("#overlay li").removeClass("current_page_item");
        $(this).closest("li").addClass("current_page_item");
    });
});

谢谢,
乔什

1 个答案:

答案 0 :(得分:5)

您可以结合使用一对选择器和一个逗号。这两个选择器的匹配元素将被返回:

$("#nav li, #overlay li").click(function(e) {
    e.preventDefault();
    $(this).closest('#nav, #overlay').find('li').removeClass("current_page_item");
    $(this).closest("li").addClass("current_page_item");
});

要在单击时取消选择其他元素,请找到与容器ID相匹配的祖先(navoverlay),然后从后代{{1}中删除current_page_item类}元素。