首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >wordpress中enquire.js的Polyfill

wordpress中enquire.js的Polyfill
EN

Stack Overflow用户
提问于 2013-09-14 13:19:35
回答 1查看 272关注 0票数 0

我正在尝试在我的Wordpress安装中使用Enquire.js。我试着把左边的柱子压在中间的柱子下面,用在小屏幕上。

我让它在我的笔记本电脑上的大多数浏览器中工作,但它不能在旧的Androids浏览器(2.2)上工作,因为它需要一个polyfill。我试图让这个polyfill正常工作,但仍然无法在Android上获得该功能,我仍然在android控制台中收到关于matchmedia polyfill的警告。

代码语言:javascript
复制
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' );

然后我的子模板有一个js文件夹,里面有两个文件,polyfill.js,应该用来填充mediamatch (media.match.js在同一个文件夹中):

代码语言:javascript
复制
Modernizr.load([
{
    test: window.matchMedia,
    nope: "media.match.js"
} ]);

代码语言:javascript
复制
jQuery(document).ready(function() {
   enquire.register("screen and (max-width: 599px)", {
       match: function() { jQuery('#leftside').insertAfter('#primary'); },
       unmatch: function() { jQuery('#leftside').insertBefore('#primary'); }
   }); 
});
EN

回答 1

Stack Overflow用户

发布于 2013-12-05 08:23:59

如果我正确理解了您的场景,那么它可能与时间问题有关,即在media.match.js之前加载enquire.js。我不确定.wp_enqueue_script()是如何工作的,但你可以尝试以下方法(基于this评论:

代码语言:javascript
复制
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。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18798590

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档