1

我想编写 jquery 代码来检测屏幕大小小于 767px 并且一个元素是空的,在这种情况下是一个跨度。

 if ( ($(window).width() <= 767) && ($.trim($(".btm").html())=='' ) ){

            $('.element').show();
        } else {

            $('.element').hide();
        }

<span class="btm"> </span>

这段代码不起作用,有人知道为什么不起作用吗?谢谢

4

2 回答 2

3

那是因为执行此代码时 DOM 尚未准备好。$(".btm")找不到。利用

$(function() { 
     your code here will be executed when the page is ready
});
于 2013-01-23T19:01:21.593 回答
1

提供的解决方案可能是您遇到问题的原因。另一件需要注意的事情是调用 JS 文件和 Javascript 的顺序。

例如,这将不起作用

<body>

<script>
if ( ($(window).width() <= 767) && ($.trim($(".btm").html())=='') ){
    $('.element').show();
} else {
    $('.element').hide();
}
</script>

<script src="jquery.js"></script>

<span class="btm"> </span>

</body>

用于检查窗口宽度是否小于或等于 767 像素以及.btmspan 元素是否为空的 JavaScript 使用 jQuery!因此,您需要确保在执行 JavaScript 之前调用 jQuery,如下所示:

<body>

<script src="jquery.js"></script>

<script>
if ( ($(window).width() <= 767) && ($.trim($(".btm").html())=='') ){
    $('.element').show();
} else {
    $('.element').hide();
}
</script>

<span class="btm"> </span>

</body>
于 2013-01-23T19:17:10.197 回答