2013-01-23 43 views
1

我想编写jquery代码来检测屏幕尺寸小于767px,元素为空,在这种情况下为跨度。JQuery - 如果屏幕尺寸小于767并且元素为空

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

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

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

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

此代码无法正常工作,任何人都会明白为什么它不会?谢谢

回答

3

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

$(function() { 
    your code here will be executed when the page is ready 
}); 
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> 

中的JavaScript用来检查窗口小于或等于767个像素宽,如果.btm span元素是空用了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>