1
A
回答
1
如果你在谈论的监测,当类属性被任何人修改它从没有任何帮助更改为做到这一点,那么这样做的唯一方法是:
与CSS(其中当一个类被删除的CSS样式会自动更改)
完全解决你的问题,一个MutationObserver(在现代浏览器只),在那里你可以注册一个兴趣在那个特定的属性改变。不幸的是,MutationObservers没有在IE支持前IE 11
如果你是更具体的了解你想要什么来完成和/或哪些代码正在改变类名,那么我们也许可以提供一些其他也有想法。
1
你可以写这个
app.directive("isNotOpen", function(){
var linkFunction = function(scope, element, attrs){
scope.$watch(
function() {
return element.attr('class');
}, function(){
if(!element.hasClass("open")){
scope.$eval(scope.isNotOpen)
}
});
};
return {
link: linkFunction
scope: {isNotOpen: '&'}
}
})
定制指令,你可以使用像下面
<div class="open" is-not-open="dosomething()">
1
你可以用这样的指令$watch
类属性:
.directive('watchClass', function() {
return function(scope, element, attrs) {
scope.$watch(function() {
return attrs['class']; // Or element.attr('class');
}, function(newValue, oldValue) {
// Check for open class removal and do something
});
};
});
然后将该指令应用于您的元素。
<ul class="open" watchClass>
(注:有什么比别的角度折磨你的DOM听起来怪我)
相关问题
- 1. 检测DOM元素的父元素更改
- 2. 使用javascript检测HTML DOM中元素的属性
- 3. 检查DOM元素的更改值
- 4. 访问Angular 2中的DOM元素并更改元素的类属性
- 5. “HTML属性”与“DOM元素的属性”
- 6. 动态检测html元素属性更改
- 7. jQuery更改属性元素
- 8. 更改jQuery元素属性
- 9. 更改DOM元素出现时的属性
- 10. 更改DOM元素的多个属性与JavaScript
- 11. 更改行jquery中元素的属性
- 12. 如何根据相邻字段的属性更改DOM元素的属性?
- 13. 测试DOM中的所有元素节点的属性存在
- 14. 检测DOM更改事件
- 15. DOM属性更改调试
- 16. 如何更改DOM元素?
- 17. 在DOM中修改新插入的元素属性的问题
- 18. 检查具有数据属性id的dom元素然后更新这些元素数据属性
- 19. 检测getVideoTracks()[0] .enabled属性的更改
- 20. 检测PropertyChangedCallback中的子属性更改并获取子属性
- 21. jQuery更改元素中元素的属性
- 22. 不能更改元素的name属性
- 23. 如何更改XML元素的属性
- 24. 如何更改simpleXML元素的属性?
- 25. 动态元素的更改属性
- 26. 如何检测DOM属性的变化?
- 27. 更改DataTemplate中元素的属性并反映更改
- 28. 检测“挂钩”的DOM元素
- 29. DOM:如何检测新的子元素?
- 30. 检测有效的DOM元素
人取出的CSS类? –
几年前,它看起来像一个类似的问题。我想知道现在是否有新的信息。 http://stackoverflow.com/questions/4561845/firing-event-on-dom-attribute-change – nwalton
只是为了澄清:你可以改变(我想)的脚本,删除'开放'类?或者你只能看DOM? – Polmonite