【问题标题】:Reload width ajax and keep the current class重新加载宽度ajax并保留当前类
【发布时间】:2023-03-04 06:27:01
【问题描述】:

我有一个关于 ajax 的问题。

举个例子:我有一个菜单列表(ul li),默认情况下第一个有“当前”类。 如果我单击第二个项目,则使用 jquery 将类“当前”分配给他并将其从前一个项目中删除。

现在,我需要用 ajax 重新加载菜单列表,所以我调用了 ajax 函数,该函数调用了一个返回更新 html 列表的 php 函数。

但是通过这种方式,我从第二个列表中丢失了“当前”类,在我用 jquery 分配之前。

我经常遇到这种类型的问题..解决它的正确方法是什么?

【问题讨论】:

    标签: ajax jquery reload


    【解决方案1】:

    一种方法是使用current 类获取li 的索引,并在ajax 成功回调中将current 类分配给适当的索引

    看看这个fiddle得到lihttp://jsfiddle.net/3nigma/zyayj/的索引

    在您的 success 回调中

    success:function(data){
    var i = index -1; // index is zero based and eq() is 1 based
    $("ul li:eq(i)").addClass("current");
    
    }
    

    【讨论】:

    • 好的,但是如果使用 php 函数我添加了一个项目?最后一个索引不再有效......现在我为每个项目使用 id,在调用 ajax 函数之前,我将当前项目保存在变量中,当 ajax 完成时,我恢复“当前”..但我没有认为这个解决方案是“正确的解决方案”。也许与会议......
    【解决方案2】:

    我认为您的问题表明您还不知道网页是“无状态的”,这意味着它们不会“自动”保存或存储您对它们所做的任何事情。

    请参阅我的回答,即一个 privious 问题,它总结了处理保留状态的方法 - 您的菜单的原则将保持不变。

    Stateless HTML

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-03-08
      • 1970-01-01
      • 1970-01-01
      • 2017-05-18
      • 2020-03-14
      • 2016-08-24
      • 1970-01-01
      • 2013-04-22
      相关资源
      最近更新 更多