首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Javascript: alerting观察者没有警报消息

Javascript: alerting观察者没有警报消息
EN

Stack Overflow用户
提问于 2016-03-23 16:22:08
回答 2查看 4.1K关注 0票数 4

我正在尝试检测元素中的CSS属性更改。我在网上搜索,找到了MutationObserver javascript API。但是在我的测试脚本中,它并没有像预期的那样工作(它没有提醒属性名和属性值)。

代码语言:javascript
复制
var foo = document.getElementById("hideit");

var observer = new MutationObserver(function(mutations) {
  mutations.forEach(function(mutation) {
    alert('mutation.type = ' + mutation.type);

  });

});
observer.observe(foo);
observer.disconnect();

$(function() {
  $("#clickhere").on("click", function() {
    $("#hideit").slideToggle('fase');
  });

});
代码语言:javascript
复制
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.0/jquery.min.js"></script>

<body>
  <div id="clickhere">click to toggel</div>
  <div id="hideit" style="display:none;">this is the content of the hide/show toggle</div>

</body>

并显示一个javascript错误。

代码语言:javascript
复制
TypeError: Argument 1 of MutationObserver.observe is not an object.

感谢就是进步

EN

回答 2

Stack Overflow用户

发布于 2016-03-23 16:32:09

你的代码中有两个问题:

observer.observe

  1. 用法不正确。它应该有两个参数: Node和MutationObserverInit。查看正确的接口here.
  2. Do,而不是在observe之后立即调用observer.disconnect();Disconnect停止观察。

Working example

票数 6
EN

Stack Overflow用户

发布于 2016-03-23 16:32:21

在实际加载DOM之前执行您的代码...因此,您将向observe方法传递一个null/未定义的值。

把你的代码放在里面:

代码语言:javascript
复制
$( document ).ready(function() {
....
})

另外,调用disconnect将阻止它接收任何事件。因此,您不应该在调用observe之后立即调用disconnect。并且您缺少observe调用的一个参数。

请查看此处的工作示例:

https://developer.mozilla.org/en-US/docs/Web/API/MutationObserver#Example_usage

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

https://stackoverflow.com/questions/36172983

复制
相关文章

相似问题

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