Jquery 在具有相同类的页面上的隐藏div之间切换会影响所有div

Jquery 在具有相同类的页面上的隐藏div之间切换会影响所有div,jquery,ajax,load,hide,show,Jquery,Ajax,Load,Hide,Show,我的页面上有2个div,其中有个人id。在这些div中,我有一个无序列表,共享同一个类(.stats nav): 我遇到的问题是,如果我正在查看#product2,然后单击“营养信息”,然后单击#product1,它将显示#product1的正确信息,但它将从我在“营养信息”而不是默认状态“配料”处停止的位置开始 我有没有办法“清除”div的最后一个状态 (如果我通过ajax加载它,加载内容会按预期刷新,但我不想再使用ajax方法) 谢谢 我不确定我是否理解正确,但看起来您正在将您的事件应用于两

我的页面上有2个div,其中有个人id。在这些div中,我有一个无序列表,共享同一个类(.stats nav):

我遇到的问题是,如果我正在查看#product2,然后单击“营养信息”,然后单击#product1,它将显示#product1的正确信息,但它将从我在“营养信息”而不是默认状态“配料”处停止的位置开始

我有没有办法“清除”div的最后一个状态

(如果我通过ajax加载它,加载内容会按预期刷新,但我不想再使用ajax方法)


谢谢

我不确定我是否理解正确,但看起来您正在将您的事件应用于两个'li.stat-cat1'。听起来你需要把每个人都隔离开来。或者您需要参考与单击相关的单个链接。我没有看到任何叫做“营养信息”的课程,所以我猜它是ul的孩子

$("li.stat-cat1 a").live('click', function() {
    $(".nutritional-info").hide();//hide all
    $(this).closest('stats-nav').find(".nutritional-info").show();
});
编辑: 进一步考虑之后,您可能只需要向click事件添加一个新类

$("li.stat-cat1 a").live('click', function() {
    $(".nutritional-info").show();
    $(".nutritional-info").addClass('selected')
    return false;
});
之后,您可以通过以下方式找到它:

$(".nutritional-info.selected")

我认为您的问题在于选择器$(“.nutrition info”)正在查找页面上的所有元素,而不管它们的父div是否可见。要筛选操作以仅对可见产品执行操作,请尝试以下操作:

$("li.stat-cat1 a").live('click', function() {
    $("div:visible .nutritional-info").show();
    return false;
});

我们能多看看你的HTML和js吗?现在我要说的是,无论何时处理“单击转到#product1”,只要.hide()所有不想显示的div和.show()一个。
$(".nutritional-info.selected")
$("li.stat-cat1 a").live('click', function() {
    $("div:visible .nutritional-info").show();
    return false;
});