为什么这段jQuery/Java脚本代码不能在移动/移动设备上运行?

时间:2015-05-15 作者:Riffaz Starr

我的header.php :

<script type="text/javascript">
/* to show back the left side bar back when the LEFT side bar is moved next/below to the center/content */
    jQuery(document).ready(function($) {        
        $(window).resize(function() {
          if ($(window).width() < 1018) {            
             $(\'.tm_left\').insertAfter(".tm_center");
             $(\'.tm_left\').show();
          }
         else {
            $(\'.tm_left\').insertBefore(".tm_center");
         }
        }); 
    });  
</script>
此代码将我的HTML结构更改为:

<div class="tm_left">
    <!-- left side bar code-->
</div>
<div class="tm_center">
    <!-- content code-->
</div>
<div class="tm_right">
    <!-- right side bar code-->
</div

<div class="tm_center">
    <!-- content code-->
</div>
<div class="tm_left">
    <!-- left side bar code-->
</div>
<div class="tm_right">
    <!-- right side bar code-->
</div>
调整浏览器大小时效果很好。

但当我在设备中检查时.tm_left { display: none; } 此外,HTML标记与以下内容相同:

<div class="tm_left">
    <!-- left side bar code-->
</div>
<div class="tm_center">
    <!-- content code-->
</div>
<div class="tm_right">
    <!-- right side bar code-->
</div
“我的孩子”主题css有以下内容:

@media (max-width: 768px) { /*  removing side bar below the screen size 768.. starts from iPad portrait view */     
    .tm_left { display: none; width: 231px; }
}
为什么它不能像在浏览器上那样在移动设备上工作?

1 个回复
最合适的回答,由SO网友:redelschaap 整理而成

因为.insertAfter().show() 函数仅在调整大小事件时调用,而移动设备不调整大小。他们已经用手机大小加载页面。只需确保您也在ready事件上运行代码:

<script type="text/javascript">
/* to show back the left side bar back when the LEFT side bar is moved next/below to the center/content */
    function responsive_sidebar() {
        if ( jQuery(window).width() < 1018 ) {            
            jQuery(\'.tm_left\').insertAfter(".tm_center");
            jQuery(\'.tm_left\').show();
        } else {
            jQuery(\'.tm_left\').insertBefore(".tm_center");
        }
    }

    jQuery(document).ready(function() {
        responsive_sidebar();

        $(window).resize( responsive_sidebar ); 
    });  
</script>
请注意,我将代码放入函数中,只是为了减少代码行数/

结束

相关推荐

Wp_List_Table not responsive

im使用wp_list_table 在我的后端主题上初始化,以显示我保存在数据库中的一些信息,但有很多信息,我想让它响应,根据屏幕大小显示/隐藏一些元素。我以为它会自动发生,就像在显示帖子的表中一样,但事实并非如此。以下是小屏幕中所有帖子的示例这是我在小屏幕上的wp\\u list\\u表我如何在没有黑客的情况下修复这个bug,wordpress core有什么解决方案吗?类似帖子谢谢