が
Object.keys(config.mediaQueries).map((key) =>{
console.log("register key: '" + key + "'");
config.mediaQueries[key].addListener(function(){
console.log("breakpoint change key:'" + key + "'");
});
});
結果のログ出力は、常に2つのラインを生成しますあなたの直接の質問に答えるために、あなたは間違ったことをしていません。そしてJSはそれがするべきことを正確にやっている。
trldイベントは2回発生しますが、一致するメディアクエリが1つだけ含まれています。
ブラウザがブレークポイントに達すると、2つのイベントがログに記録されます。たとえば、ブラウザのサイズを1250ピクセルから1150ピクセルに変更する場合を考えてみましょう。ウィンドウの幅が1199ピクセルになると、関数:
Object.keys(config.mediaQueries).map((key) =>{
config.mediaQueries[key].addListener(function(event){
console.log("breakpoint change");
});
});
は2イベントを記録します。これ以上深く掘り下げてイベントを記録する場合は、
Object.keys(config.mediaQueries).map((key) =>{
config.mediaQueries[key].addListener(function(event){
console.log(event);
});
});
などのメディアクエリに関する情報が表示されます。私はイベントオブジェクトを下の重要な小道具に煮詰めました。
ここでは、2つのイベントが記録されていますが、イベントの1つに一致するクエリが含まれています。
Object.keys(config.mediaQueries).map((key) =>{
config.mediaQueries[key].addListener(function(event){
if (event.matches) {
console.log(event);
}
});
});
のみマッチングメディアクエリがログに記録されます。この小さな変更に伴い:私たちは、ロギング用のスクリプトを改善したい場合
だから、あなたはmatches
プロパティをチェックすることができます。
驚くばかりです。ご協力いただきありがとうございます。 –