これはおそらくほとんどの読書の基本ですが、私には理解できないようです.
特定の幅以下の場合に実行したい小さなテスト関数があります。画面が回転したり、その幅を超えてサイズ変更されたりすると、機能が動作しなくなります。簡単にするために、いくつかのサンプルコードを示します。
enquire.register("screen and (max-width:500px)",{
match : function() {
$(".block .block-title").click(function(){
alert("Hello World!");
});
}
}).listen();
したがって、ページが 500px を超えて読み込まれる場合、意図したとおりに機能します。クリックしても実行されません。ページが 500px 以下で読み込まれると、クリック機能が実行されます。唯一の問題は、ビューポートのサイズを変更したり、向きを 500px 以上に変更したりしても、関数が引き続き実行されることです。それを無効にできるようにしたいです。
ここで実際にやろうとしている現実世界のシナリオは、4 つのアイテムの順序付けられていないリストがあるということです。特定の幅を超えると、すぐに表示されます。特定の幅以下の場合は、それらを非表示にして、クリックして表示したいだけです。それを行うにはいくつかの方法があることを知っています(.toggle()、.toggleClass( "myclass")など)。
私はこれを何度も行ってきましたが、ブレークポイントに入ったり出たりして、リセットされなかったり、意図したとおりに機能していなかったりすることにいつも悩まされます。通常は問題になりませんが、最近の私のユースケースでは問題になりました。
不一致オプションについては知っていますが、上記の一致した関数を実際に強制終了する方法がわかりません。
enquire.register("screen and (max-width:500px)",{
match : function() {
$(".block .block-title").click(function(){
alert("Hello World!");
});
},
{
unmatch : function() {
// what do I do here do kill above?
}
}
}).listen();
どんな助けでも大歓迎です。それが私の現在の状況に役立つと確信していますが、他のことについて enquire.js の知識を広げるのにも役立つでしょう。
ありがとう。
編集:言及するのを忘れていました... 500px未満のページを読み込んでから、サイズを変更するか、500pxより広く向きを変えてから、500px未満に戻ると、クリック機能が再び機能しなくなります..これも私を混乱させます. 私は基本的に、500px未満では何があっても機能し、500pxを超えるとまったく機能しないことを望んでいました.