首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >jQuery --我使用的是未检测CSS主体:

jQuery --我使用的是未检测CSS主体:
EN

Stack Overflow用户
提问于 2014-03-12 21:04:22
回答 1查看 230关注 0票数 2

我使用一些jQuery来检测是否触发了某个媒体查询,如下所示:

jQuery

代码语言:javascript
运行
复制
var currentSize = "default";
var mqCSS = function () {
    var size = window.getComputedStyle(document.body, ':after').getPropertyValue('content');
    size = size.replace(/"/g, "");
    size = size.replace(/'/g, "");
    return size;
};

function mobile_load_img(obj) {
    size = obj();
    if (size != currentSize) {
        if (size == 'laptop') {
              alert('hello');
            currentSize = 'mobile';
        }
    } //if size

}
mobile_load_img(mqCSS);

CSS

代码语言:javascript
运行
复制
@media only screen and (min-width: 10em) {
    body:after {
        content:'laptop';
        display:none;
    }
}

这应该是可行的,而且它可以在我的主页上运行,但是只有其他的页面不能工作。这些脚本肯定是在加载。

这是一个小提琴

我唯一能想到的其他问题可能是我是如何排列我的脚本的。我不知道为什么,但我认为这个问题发生在我开始设置tilemtime()以停止某些CDN缓存时。我不太清楚为什么,因为它们看起来都很好。

对不起,代码块:

代码语言:javascript
运行
复制
function lart_stylesheets() {
    if (!is_admin()) {
        wp_enqueue_style('reset_style', get_stylesheet_directory_uri().'/css/reset.css',
        array(), 'all');
        wp_enqueue_style('base_style', get_stylesheet_directory_uri().'/css/base_style.css',
        array('reset_style'), '1.0', 'all');
    }
    if (is_home()) {
        wp_enqueue_style('home-style', get_template_directory_uri().'/css/home.css', array(), filemtime(get_stylesheet_directory().'/css/home.css'));
    }
    if (is_single() || is_page('LART TV') || is_category() || is_page('We\'re Wearing') || is_page('archives')) {
        wp_enqueue_style('single-style', get_stylesheet_directory_uri().'/css/single.css', array(), filemtime(get_stylesheet_directory().'/css/single.css'));
        wp_enqueue_style('lightbox', get_stylesheet_directory_uri().'/css/lightbox.css',
        array(), '1.0', 'all');
    }
}

function lart_front_end_scripts() {
    wp_deregister_script('jquery');
    wp_deregister_script('jquery-migrate.min');
    wp_deregister_script('comment-reply.min');
    wp_register_script('jquery', '//ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js', false, '3.6', true);
    if (!is_admin()) {
        wp_register_script('mainJS', get_template_directory_uri().'/js/mainJS.js', array('jquery', 'underscore'), filemtime(get_stylesheet_directory().'/js/mainJS.js'), true);
        wp_enqueue_script('mainJS');
        wp_register_script('hammer', get_template_directory_uri().'/js/hammer.js', array('jquery'), filemtime(get_stylesheet_directory().'/js/hammer.js'), true);
        wp_enqueue_script('hammer');
    }
    if (is_home()) {
        wp_register_script('homeJS', get_template_directory_uri().'/js/home.js', array('jquery', 'underscore', 'jquery-masonry'), filemtime(get_stylesheet_directory().'/js/home.js'), true);
        wp_enqueue_script('homeJS');
    }
    if (is_single() || is_page('LART TV') || is_category() || is_page('We\'re Wearing')) {
        wp_register_script('singleJS', get_template_directory_uri().'/js/single.js', array('jquery', 'carousel'), filemtime(get_stylesheet_directory().'/js/single.js'), true);
        wp_enqueue_script('singleJS');
        wp_register_script('lightbox', get_template_directory_uri().'/js/lightbox.js', array('jquery'), filemtime(get_stylesheet_directory().'/js/lightbox.js'), true);
        wp_enqueue_script('lightbox');
        wp_register_script('inviewJS', get_template_directory_uri().'/js/inview.js', array('jquery', 'singleJS'), filemtime(get_stylesheet_directory().'/js/inview.js'), true);
        wp_enqueue_script('inviewJS');
        wp_register_script('spinJS', get_template_directory_uri().'/js/spin.js', array('jquery'), filemtime(get_stylesheet_directory().'/js/spin.js'), true);
        wp_enqueue_script('spinJS');
        wp_register_script('carousel', get_template_directory_uri().'/js/carousel.js', array('jquery'), filemtime(get_stylesheet_directory().'/js/carousel.js'), true);
        wp_enqueue_script('carousel');
    }
    if (is_page('LART TV')) {
        wp_register_script('lartTVJS', get_template_directory_uri().'/js/lartTV.js', array('jquery', 'jquery-masonry'), filemtime(get_stylesheet_directory().'/js/lartTV.js'), true);
        wp_enqueue_script('lartTVJS');
    }
    if (is_page('We\'re Wearing')) {
        wp_register_script('whatwearingJS', get_template_directory_uri().'/js/whatwearing.js', array('jquery-masonry'), filemtime(get_stylesheet_directory().'/js/whatwearing.js'), true);
        wp_enqueue_script('whatwearingJS');
    }
    if (is_search() || is_page('archives')) {
        wp_register_script('archiveJS', get_template_directory_uri().'/js/archive.js', array('jquery'), filemtime(get_stylesheet_directory().'/js/archive.js'), true);
        wp_enqueue_script('archiveJS');
        wp_register_script('spinJS', get_template_directory_uri().'/js/spin.js', array('jquery'), filemtime(get_stylesheet_directory().'/js/spin.js'), true);
        wp_enqueue_script('spinJS');
    }
} //End add_scripts

我做错什么了吗?我的脚本和样式表排队有问题吗?

可能是时间问题还是别的什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-03-12 21:16:26

由于某些原因,我没有得到(可能是浏览器的惰性计算),如果设置了display:none;,就不会计算样式(至少在页面加载时),所以您不能通过window.getComputedStyle()访问它。我只是通过提醒size变量来测试这一点。

解决办法之一是在您的样式上使用visibility:hidden;

代码语言:javascript
运行
复制
body:after {
    content:'laptop';
    visibility:hidden;
}

这是一个演示,但是您应该考虑使用@Bojangles选项,window.matchMedia;它将用以下代码替换所有代码:

代码语言:javascript
运行
复制
if (window.matchMedia("(min-width: 10em)").matches)
    currentSize = 'mobile';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22363778

复制
相关文章

相似问题

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