2017-06-26 10 views
0

ビューポートが1024pxsより小さくなったときに要素のinnerHTMLを変更したいとします。イベントハンドラのinnerWidthをバニラJsで変更するときの応答

私はjQueryを使わずに、vanilla Jsだけですべきです。

は、これまでのところ私はこれらのソリューションを試してみました:

(function changeTextualName() { 

if (window.innerWidth <= 1024) { 
    document.querySelector(".logo-text a").innerHTML = "example1 <br> example2"; 
} else { 
    document.querySelector(".logo-text a").innerHTML = "example1 | Example2"; 
} 

}()); 

この最初のソリューションは部分的にしか働いていた:それは、Webページがロードされた結婚初めての仕事でしたが、ありませんリサイズ上(の哲学的な意味での「イベント」イベントリスナーの不足による感覚はクリアされません)。

(function changeTextualName() { 

window.addEventListener("innerWidth <= 1024", function() { 
     document.querySelector(".logo-text a").innerHTML = "example1 <br> Example2"; 
} 

}()); 

私はロジックで何かを見逃して新人として:

は私もまったく動作しないこのソリューションを、試してみました。私はイベントのサイズを変更するのを聞いていましたが、1024などの値を扱うコード例は見られませんでした。たぶんjQuery(または、最初からライブラリを作成する - 私はこの場合に行うつもりはない)は結局のところ必要ですか?ザールため

更新: enter image description here

+0

のイベントリスナーであなたのメソッドを呼び出し、イベントリスナーは耳を傾ける必要があります"resize" window.addEventListener( 'resize'、function(){//あなたのコード}); – Saar

+0

Saarのコメントと答え私は自分の間違いを理解しています。ウェブページのブートストラップで関数を一度呼び、コールバックコンセプトを適切に開始していないので、各サイズ変更時にコールバックがなかった。私はSaarに助けを感謝します。 –

答えて

0

ちょうどあなたが小さなミスを持っている「サイズを変更」

function changeTextualName() { 
 

 
if (window.innerWidth <= 1024) { 
 
    document.querySelector(".logo-text a").innerHTML = "example1 <br> example2"; 
 
} else { 
 
    document.querySelector(".logo-text a").innerHTML = "example1 | Example2"; 
 
} 
 
window.addEventListener('resize',changeTextualName);

+0

私は間違いを理解しています。ウェブページのブートストラップで関数を一度呼び、コールバックの概念を適切に開始していないので、各サイズ変更時にコールバックがなかった。あなたのおかげで私は間違いを理解します。 –

+0

喜んでお手伝いください:) – Saar

+0

あなたのchangeTextualName関数でのみアラート(1);それが呼び出されたかどうかを確認してください。 – Saar

関連する問題