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