如何启动一个新事件:当一个类改变(消失)时“重新加载页面”?

时间:2017-05-25 16:39:48

标签: javascript jquery

当特定类不存在(消失)时,我需要刷新(重新加载)页面。此类已更改,因为另一个以前的jQuery事件(removeClass)。

HTML初始(示例):

<div class="class1 class2">
</div>

事件之后:

<div class="class1">
</div>

当&#34; class2&#34;不存在我需要启动脚本来刷新页面。

谢谢(抱歉我的英语不好)。

1 个答案:

答案 0 :(得分:2)

您可以使用MutationObserver。我在这里写了一个例子:

http://jsbin.com/vahixehema/edit?html,js,output

var target = document.getElementById('foo');

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    if (mutation.attributeName === "class") {
      // the class of the target node changed
      if(!target.className.match(/\bbar\b/)){
        // bar is now not present
        alert("class 'bar' was removed");
        observer.disconnect();
        // reload the page here.
      }
    }
  });
});

observer.observe(target, { attributes: true });

// remove class after 3 seconds
window.setInterval(function(){
   target.classList.remove("bar");
}, 3000);

基本思路是在目标节点的class属性发生变化时进行监听,然后在目标节点发生变化时,检查您关心的课程是否已被删除。

如果您仍在使用jQuery,则可以使用!$.hasClass('bar')或类似内容来检查该类是否已被删除。