<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>DOM  |  takeHo（たけほ）のへなちょこ台帳</title>
	<atom:link href="https://blog.takeho.com/tag/dom/feed/" rel="self" type="application/rss+xml" />
	<link>https://blog.takeho.com</link>
	<description>いわゆる自由帳ってところです。</description>
	<lastBuildDate>Tue, 09 Dec 2025 01:20:30 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6</generator>

<image>
	<url>https://blog.takeho.com/wp-content/uploads/2024/08/icon-150x150.png</url>
	<title>DOM  |  takeHo（たけほ）のへなちょこ台帳</title>
	<link>https://blog.takeho.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>JSでDOMの要素の変化を監視してイベントを発生させる</title>
		<link>https://blog.takeho.com/5vbjbjkot1jxy6g9urii90twi24lub3n/</link>
					<comments>https://blog.takeho.com/5vbjbjkot1jxy6g9urii90twi24lub3n/#respond</comments>
		
		<dc:creator><![CDATA[たけほ]]></dc:creator>
		<pubDate>Fri, 23 Aug 2024 17:50:00 +0000</pubDate>
				<category><![CDATA[ウェブ・開発]]></category>
		<category><![CDATA[DOM]]></category>
		<category><![CDATA[JavaScript]]></category>
		<guid isPermaLink="false">https://blog.takeho.com/?p=225</guid>

					<description><![CDATA[ページをある程度スクロールすると など、クラス名が動的に追加される場面があります。 ここでは要素を監視し、クラス名にheader-fixedが追加されたらイベントを発生させる方法を説明します。 目次 使用する機能Muta [&#8230;]]]></description>
										<content:encoded><![CDATA[
<pre class="wp-block-code"><code>&lt;div id="navi" class="nav-header"></code></pre>



<p>ページをある程度スクロールすると</p>



<pre class="wp-block-code"><code>&lt;div id="navi" class"nav-header header-fixed"></code></pre>



<p>など、クラス名が動的に追加される場面があります。</p>



<p>ここでは要素を監視し、クラス名に<strong>header-fixed</strong>が追加されたらイベントを発生させる方法を説明します。</p>




  <div id="toc" class="toc tnt-number toc-center tnt-number border-element"><input type="checkbox" class="toc-checkbox" id="toc-checkbox-2"><label class="toc-title" for="toc-checkbox-2">目次</label>
    <div class="toc-content">
    <ol class="toc-list open"><li><a href="#toc1" tabindex="0">使用する機能</a><ol><li><a href="#toc2" tabindex="0">MutationObserverとは</a></li></ol></li><li><a href="#toc3" tabindex="0">使い方</a><ol><li><a href="#toc4" tabindex="0">トリガーの指定</a></li><li><a href="#toc5" tabindex="0">オブザーバーの作成</a></li><li><a href="#toc6" tabindex="0">監視を開始する</a></li><li><a href="#toc7" tabindex="0">監視を停止</a></li></ol></li></ol>
    </div>
  </div>

<h2 class="wp-block-heading"><span id="toc1">使用する機能</span></h2>



<p>ここでは<strong>MutationObserver</strong>のクラスを使用します。</p>



<h3 class="wp-block-heading"><span id="toc2">MutationObserverとは</span></h3>



<p><strong>MutationObserver</strong>（ミューテーションオブザーバー）は</p>



<ul class="wp-block-list">
<li>Mutation　→　突然変異</li>



<li>Observer　→　観察者</li>
</ul>



<p>という意味があり、DOMに変化が加わったことを監視し、変更があった場合にコールバックを起動する組み込みのオブジェクトになります。</p>



<h2 class="wp-block-heading"><span id="toc3">使い方</span></h2>



<h3 class="wp-block-heading"><span id="toc4">トリガーの指定</span></h3>



<p>次のように監視するDOMを指定します。</p>



<pre class="wp-block-code"><code>var target = document.getElementById('navi');</code></pre>



<h3 class="wp-block-heading"><span id="toc5">オブザーバーの作成</span></h3>



<p>次のように変化が発生したときの処理を指定します。</p>



<pre class="wp-block-code"><code>var observer = new MutationObserver(records => {
  if (jQuery('#navi').hasClass('header-fixed')) {
    alert('header-fixed exists.');
  } else {
    alert('header-fixed is not exists.');
  }
});</code></pre>



<h3 class="wp-block-heading"><span id="toc6">監視を開始する</span></h3>



<p>次の記述で監視を開始します。</p>



<pre class="wp-block-code"><code>observer.observe(target, {
  attributes: true,
  attributeFilter: &#91;'class']
});</code></pre>



<p>これで<strong>header-fixed</strong>のクラスが動的に追加・削除を監視してアラートを出す事ができます。</p>



<h3 class="wp-block-heading"><span id="toc7">監視を停止</span></h3>



<p>次の記述で監視を停止します。</p>



<pre class="wp-block-code"><code>observer.disconnect();</code></pre>
]]></content:encoded>
					
					<wfw:commentRss>https://blog.takeho.com/5vbjbjkot1jxy6g9urii90twi24lub3n/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
