结合多个jQuery

问题描述 投票:0回答:1

我有以下两个函数做同样的事情,我可以将这两个函数组合成一个函数吗?

$(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");
    });
});

谢谢, 玩笑

jquery function class
1个回答
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),并从后代current_page_item元素中删除li类。

© www.soinside.com 2019 - 2024. All rights reserved.