我正在尝试在Wordpress安装中使用Enquire.js。我正在尝试将中间列下的左列推到小屏幕上。
我在笔记本电脑的大多数浏览器中都可以使用它,但它不适用于较旧的Androids浏览器(2.2),说它需要一个polyfill。我试图让这个polyfill工作,但仍然没有在Android上获得功能,我仍然在android控制台中收到有关matchmedia polyfill的警告。
请帮我查明可能出现的问题。 基本上,我在function.php中加载了几个脚本:
function rr_scripts() {
wp_enqueue_script( 'polyfill', get_stylesheet_directory_uri() . '/js/polyfill.js', array( 'Modernizr' ), '1.0.0', true );
wp_enqueue_script( 'enquire', get_stylesheet_directory_uri() . '/js/enquire.js', array( 'jquery' ), '1.0.0', true );
wp_enqueue_script( 'reorder', get_stylesheet_directory_uri() . '/js/reorder.js', array( 'enquire' ), '1.0.0', true );
}
add_action( 'wp_enqueue_scripts', 'rr_scripts' );
然后我的Child模板有js文件夹,里面有几个文件,polyfill.js,应该填充mediamatch(media.match.js在同一个文件夹中):
Modernizr.load([
{
test: window.matchMedia,
nope: "media.match.js"
} ]);
reorder.js(下面),它实际上也使用了同一文件夹中的enquire.js:
jQuery(document).ready(function() {
enquire.register("screen and (max-width: 599px)", {
match: function() { jQuery('#leftside').insertAfter('#primary'); },
unmatch: function() { jQuery('#leftside').insertBefore('#primary'); }
});
});
答案 0 :(得分:0)
如果我理解你的情况正确,那么它可能与时间问题有关,即在 media.match.js 之前加载 enquire.js 。我不确定.wp_enqueue_script()
如何运作,但您可以尝试以下内容(基于this评论:
Modernizr.load([{
// First test requirement for .matchMedia() polyfill
test: window.matchMedia,
nope: 'media.match.min.js'
}, {
// ...and then load enquire.js
load: 'enquire.min.js',
complete: function() {
enquire.register(...);
}
}
]);
旁注:enquire.js不依赖于jQuery。