一部の要素が非表示になり、js によって表示されるように設定された後にトリガーするようにイベントを設定できますか?
また、js が要素にクラスを追加したかどうかを検出できますか?
私はjQueryで作業しています
一部の要素が非表示になり、js によって表示されるように設定された後にトリガーするようにイベントを設定できますか?
また、js が要素にクラスを追加したかどうかを検出できますか?
私はjQueryで作業しています
はい。イベントを介してクラスの追加と削除を追跡できます。
これは、イベントを使用して追跡できます。このイベントは、名前が示すように、DOM内の要素の属性が変更されるたびにDOMAttrModified
発生します。
この特定のケースでは、追跡しclass
たい要素の属性の変更を追跡します。
デモ: http: //jsfiddle.net/techfoobar/dnRUu/2/
デモでは、[クラスの切り替え]ボタンをクリックして、最初のDIVにクラスを追加します。取得したアラートは、DOMAttrModified
イベントによって発生します。
詳細はこちら:
http://www.w3.org/TR/DOM-Level-3-Events/#events-MutationEvent
免責事項:Mozilla Firefoxでのみテストされています!
たぶんあなたはそのようなイベントを処理するためにintervalを使うことができます:
function checkIt () {
if ($('#Element').length > 0) {
if($('#Element').is(':hidden') == true) {
// add class name
alert('Element was hidden');
$('#Element').removeClass('hidden').addClass('visible');
// or toggle class name
//$('#Element').toggleClass('className');
// or remove class name
//$('#Element').removeClass('className');
// if you want to clear the interval
//clearInterval(listenerID);
}
}
}
var listenerID;
$(function(){
listenerID = setInterval(checkIt, 500);
});
要素にクラス名があるかどうかを確認するには:
if ($('#Element').hasClass('className')) {
// your code
}
あなたが購読できるようなイベントはありません。あなたができる最善のことは、定期的に独自の関数を実行して、気になる変更をチェックすることです..