首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >hasClass() jquery只工作一次

hasClass() jquery只工作一次
EN

Stack Overflow用户
提问于 2022-08-20 01:44:44
回答 1查看 46关注 0票数 0

这是我的密码:

代码语言:javascript
运行
复制
$(document).ready(function () {
    if($('#first-item').hasClass('active'){
        $( ".go-prev" ).addClass( "hideMe" );
    } else {
        $( ".go-prev" ).removeClass( "hideMe" );
    }
})

此代码只工作一次,当我滚动到下一页(幻灯片)时,它不会删除活动类,解决方案是什么?

EN

回答 1

Stack Overflow用户

发布于 2022-08-20 19:32:03

根据我的评论:

代码语言:javascript
运行
复制
$(document).ready(() => {
  //we define our observed element
  const observedElement = document.getElementById("first-item");
  //we create an observer and pass a callback function..
  new MutationObserver(mutationCallback)
    //and we set it to observe,a specific element's mutations
    .observe(observedElement, {
      attributes: true,
      attributeFilter: ["class"],
    });
  //it will run the callback function everytime it detects a mutation on the observed element..
  //such as change of classlist items etc..
});

const mutationCallback = () => {
  if ($("#first-item").hasClass("active")) {
    $(".go-prev").addClass("hideMe");
  } else {
    $(".go-prev").removeClass("hideMe");
  }
};

//lets make a mutation to observed element to see if it works
const testMutation = () => {
  $("#first-item").addClass("active");
}
代码语言:javascript
运行
复制
.hideMe{
  display: none;
}
代码语言:javascript
运行
复制
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<h1 id="first-item">OBSERVED ELEMENT</h1>
<h1 class="go-prev">AFFECTED ELEMENT</h1>
<button onclick="testMutation()">TEST</button>

了解更多关于MutationObserver的信息

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73423573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档