【问题标题】:Detecting that a link class has changed [duplicate]检测链接类已更改[重复]
【发布时间】:2023-04-02 23:14:01
【问题描述】:

可能重复:
Class name change Event in jQuery

我在 bxsilder 旁边使用 jquery。

我需要 jquery 来识别链接上的类更改,然后该链接将沿一条线为图像设置动画。

页面加载时 div1 .pager-active 将图像沿线向左移动:15% 按下 next 时,div2 下的链接将获取类 .pager-active 等等。

所以我需要 jquery 来识别 div2 现在有类 .pager-active 用于将 img 设置为向左动画:50%

下面是我一直在使用的代码,它适用于 div1 的初始加载,但在加载后未检测到任何类更改。

if( $('#div1 .pager-active').length){
    $('.line img').animate({'left' : '15%'},600);
        };

if( $('#div2 .pager-active').length){
    $('.line img').animate({'left' : '50%'},600);
        };

if( $('#div3 .pager-active').length){
    $('.line img').animate({'left' : '85%'},600);
        };

任何帮助都会很棒。

【问题讨论】:

    标签: jquery class


    【解决方案1】:

    您可以在此处获取班级更改事件:

    Class name change Event in jQuery

    但你也可以试试这个解决方案:

    按下下一个时,获取具有类 .pager-active 的 div 的 id。为此使用 getAttr()。 获得 id 后,删除它的类,将类附加到下一个 div 并执行效果。

    【讨论】:

    • 感谢您的链接,我已经尝试了该链接,它有一些效果,但我怎样才能使它对 3 个 div 中的每一个都是唯一的?目前我只能在添加 $('.line img').animate({'left' : '5%'},600);
    【解决方案2】:
    var oldClass = $("#div").attr('class');
    if(oldClass != $("#div").attr('class');
    {
     //Do something?
    }
    

    可能是这样的吗?

    【讨论】:

      【解决方案3】:

      试试DOMAttrModified事件:

      document.getElementsById('div2').addEventListener('DOMAttrModified', function(e){
        if (e.attrName === 'style') {
          ...
        }
      }, false);
      

      【讨论】:

      • 不幸的是,我无法让它为我工作
      猜你喜欢
      • 2018-03-14
      • 1970-01-01
      • 1970-01-01
      • 2012-02-02
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 2012-01-05
      • 2017-06-08
      相关资源
      最近更新 更多