2016-08-15 5 views
2

幅が400ピクセル未満のブラウザのボタン(温度切り替え)を削除します。代わりに、温度を切り替えるにはdivに触れたい。私はこのコードを書いたが、うまくいきません。 「touchTemp」は含まれているdivのIDです。モバイルブラウザのクリックイベントを変更する

if (window.innerWidth < 400) { 
    document.getElementById("touchTemp").addEventListener("click", 
    function(e) { 
     console.log("Screen width is less than 400px"); 
     var text = $('#temperature').text(); 
     if (text.slice(-1) === "F") { 
     $("#temperature").html(tempCelsius + " C" + "°"); 
     } else { 
     $("#temperature").html(tempFahrenheit + " F"); 
     } 

     e.preventDefault(); 
    }); 
} // end of "if statement" 

enter image description here

輪郭青色DIVは、温度を切り替えるタッチされる領域です。

CodePen Project Link

+1

なぜボタンを削除してdivを追加するのですか?代わりに、ボタンをスタイルするだけです。ルールの周りのCSSのメディアクエリ、あなたは行くように設定されています。 JavaScriptは必要ありません。常に機能し、何らかの理由でスタイリングが失敗した場合でも、作業ボタンが残っていますが、これは最も重要な部分です。 – GolezTrol

+0

良いアイデアは実際に私はそれを考慮に入れます。 – NZMAI

+1

@Rajeshそれは本当ではない。モバイルデバイスには、「クリック」イベントがあります。 – Xufox

答えて

0

私はあなただけの完全性とテストを容易にするためにクリックするとともに、タッチハンドラを追加することをお勧め。

var theElement = document.getElementById("touchTemp"); 

theElement.addEventListener("click", myFunction, false); 
theElement.addEventListener("touchend", myFunction, false); 

function myFunction(e) { 
    console.log("Screen width is less than 400px"); 
    var text = $('#temperature').text(); 
    if (text.slice(-1) === "F") { 
    $("#temperature").html(tempCelsius + " C" + "°"); 
    } else { 
    $("#temperature").html(tempFahrenheit + " F"); 
    } 

    e.preventDefault(); 
    return false; 
} 
+0

onloadイベントハンドラを追加してください! getElementByIdは、ページが読み込まれたときに機能します。 –

関連する問題