でのみjquery関数を実行するにはどうすればよい@media screenですか?
バックグラウンド:
screen.cssスタイルシートとスタイルシートがありprint.cssます。私は 2 つの JavaScript 関数を持っていますが、そのうちの 1 つはページの必要な印刷版では実行したくありません。
でのみjquery関数を実行するにはどうすればよい@media screenですか?
バックグラウンド:
screen.cssスタイルシートとスタイルシートがありprint.cssます。私は 2 つの JavaScript 関数を持っていますが、そのうちの 1 つはページの必要な印刷版では実行したくありません。
ページの読み込み時にスクリプトが実行されるため、を使用してif (Modernizr.mq('only screen')) {$('h1').text('media screen');}いるときにスクリプトを実行するため、を使用しても意味がありません@media screen。
代わりに、メディアクエリが変更されるたびに検出し、それに応じてページを変更する必要があります。enquire.jsのようなものを使用して、これを簡単に行うことができます。
// This is just an example, be more creative!
enquire.register("screen", {
    match: function() { 
        $('#only-show-on-screen').show();
    },
    unmatch: function() {
        $('#only-show-on-screen').hide();
    }
});
最新のブラウザでは、matchesMediaを使用できます。
if (window.matchMedia("screen").matches) {
    ....
}
古いブラウザもサポートしたい場合は、matchMedia.jsのようなポリフィルを使用できます
Modernizr を使用できると思います。ただし、javascript でそれを行うためのネイティブな方法が必要です。
試したことはありませんが、以下のようなものです。
if (Modernizr.mq('only screen'))
{
..
}
メディア クエリをサポートしていない古いブラウザには注意してください。