Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何启动新活动:“;重新加载页面”;当一个类改变(消失)时?_Javascript_Jquery - Fatal编程技术网

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

Javascript 如何启动新活动:“;重新加载页面”;当一个类改变(消失)时?,javascript,jquery,Javascript,Jquery,我需要刷新(重新加载)页面时,一个特定的类不存在(消失)。由于另一个以前的jQuery事件(removeClass),该类发生了更改 HTML首字母(示例): 事件发生后: <div class="class1"> </div> 当“class2”不存在时,我需要启动脚本以刷新页面。 谢谢(很抱歉我的英语不好)。你可以使用MutationObserver。我在这里写了一个例子: 基本思想是监听目标节点的class属性何时更改,然后在更改时检查您关心的类是否已被

我需要刷新(重新加载)页面时,一个特定的类不存在(消失)。由于另一个以前的jQuery事件(removeClass),该类发生了更改

HTML首字母(示例):


事件发生后:

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

当“class2”不存在时,我需要启动脚本以刷新页面。


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

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

基本思想是监听目标节点的
class
属性何时更改,然后在更改时检查您关心的类是否已被删除


如果您使用的是
jQuery
,那么您可能会使用
!$。用hasClass('bar')
或类似的方法来检查类是否已被删除。

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

基本思想是监听目标节点的
class
属性何时更改,然后在更改时检查您关心的类是否已被删除


如果您使用的是
jQuery
,那么您可能会使用
!$。hasClass('bar')
或类似的内容,以检查是否已删除该类。

删除该类时,为什么不能刷新?删除该类时,您是否可以控制加号的重复?可能的重复可以使用
MutationObserver
。签出。删除类时为什么不能刷新?删除类时您是否可以控制plus的副本?可能的副本可以使用
MutationObserver
。没错,但观察中的类首先不存在,然后出现(加载文件时),在事件发生后(加载结束)消失。当它不再出现时,就是我需要启动刷新命令的时候…使用这段代码,由于类在开始时还不存在,所以reload命令被连续释放…我如何更正它?谢谢你运行代码了吗?这不是我看到的行为。如果我从没有类的节点开始,然后添加它,然后删除它,那么刷新只在删除它时发生。看到这个:我在3秒后添加
,5秒后删除它。嗯。。。真的。。。可能是由于与其他脚本的冲突,使其无法作为演示使用。我更仔细地看了看。谢谢没错,但观察中的类首先不存在,然后出现(加载文件时),在事件发生后(加载结束)消失。当它不再出现时,就是我需要启动刷新命令的时候…使用这段代码,由于类在开始时还不存在,所以reload命令被连续释放…我如何更正它?谢谢你运行代码了吗?这不是我看到的行为。如果我从没有类的节点开始,然后添加它,然后删除它,那么刷新只在删除它时发生。看到这个:我在3秒后添加
,5秒后删除它。嗯。。。真的。。。可能是由于与其他脚本的冲突,使其无法作为演示使用。我更仔细地看了看。谢谢
<div class="class1">
</div>
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);