2016-10-20 2 views
1

Javascript/JQueryでHTMLファイルのclassnameを変更するときにJS関数を呼び出す必要があります。Javascript/JQueryでHTMLファイルのclassnameを変更したときに別の関数を呼び出す方法

<html xmlns = "http://www.w3.org/1999/xhtml" class = "A"> 
 
- 
 
- 
 
- 
 
- 
 
- 
 
</html>

今クラス名のAは、いくつかの条件に応じて、実行時に変更なっていると、このクラス名が変更されるたびに、私は別のJS関数を呼び出す必要があります。

document.documentElement.className/document.documentElement.classListからクラス名を取得していますが、これを達成するためにEventListenerを追加しようとしていましたが、成功できませんでした。

アドバイスお願いします。

おかげで、よろしく、 Aniketすべての

+0

利用IDを実装する必要がある場合は、クラス名が前の と同じではありませんか1秒毎にチェックします........ – Mahi

+0

あなたはhttp://stackoverflow.com/questions/19401633/how-to-fire-an-event-on-class-change-using-jquery – bhantol

+0

を見てきましたか?正しい方向に進むかもしれません:https:// developer.mozilla.org/en-US/docs/Web/API/MutationObserver –

答えて

0

var prevClass=element.className; setInterval(function(){ //check classname==prevClasss }, 1000);

これは、その変更が必要な手順

+1

あなたの返事をありがとう。このロジックを介して実装され、現在は動作しています – Aniket

+0

常に問題はありません –

1

まず、あなたは条件をチェックし、同じ場所であなたの関数を発射する必要があります。しかし、私は何らかの理由でこれを行うことはできないと仮定し、DOMの変更をチェックしたいと考えています。あなたがMutationObserverを使用できることを行うには

- あなたはここでの例でのドキュメントを見つける:https://developer.mozilla.org/pl/docs/Web/API/MutationObserver 私はかなり良いブラウザをサポートしています:http://caniuse.com/#feat=mutationobserver

// select the target node 
var target = document.documentElement; 

// create an observer instance 
var observer = new MutationObserver(function(mutations) { 
    mutations.forEach(function(mutation) { 
    console.log('Fire something here on: ', mutation.type); 
    });  
}); 

// configuration of the observer: 
var config = { attributes: true, childList: true, characterData: true }; 

// pass in the target node, as well as the observer options 
observer.observe(target, config); 

これは、に基づいて行われていました例は完璧ではないかもしれませんが、テストして期待通りに動作するようです。

+0

返信いただきありがとうございます!! – Aniket

+0

しかし、私はまだドキュメントclassnameプロパティのMutationObserverをどのように生成するのか、それがどのように変更を追跡するために使用できるのか分かりません – Aniket

関連する問題