jQuery onload 屏幕大小和屏幕调整大小

标签 jquery function if-statement resize onload

如果窗口加载尺寸小于 630px 或屏幕大小调整为小于 620px,我有一些 jquery 会触发一些事件。

我目前将其作为 2 个独立的 if/else 语句 - 一个用于加载,一个用于窗口调整大小 - 无论如何我可以合并这些语句,这样我就不会为每个语句提供重复的功能?

这是我的代码 - 我已经尝试过,但无法让它工作

$(function () {
 var $window = $(window);
 $(window).on('resize', function () {
    if ($window.width() < 620) {
       $("#prd_details_smaller").append( $(".product_title"), $(".product_code"), $(".prd_reviews") );
       $("#short_desc").hide();
   }else{
       $(".col_prd_rgt").prepend( $(".product_title"), $(".product_code"), $(".prd_reviews") );
       $("#short_desc").show();    
    };
 });    
    if ($(window).width() < 620) {
       $("#prd_details_smaller").append( $(".product_title"), $(".product_code"), $(".prd_reviews") );
       $("#short_desc").hide();    
    } else {
       $(".col_prd_rgt").prepend( $(".product_title"), $(".product_code"), $(".prd_reviews") );
       $("#short_desc").show();        
    }
});

最佳答案

您可以通过将要重用的代码放置在其自己的函数中并在相关点调用它来实现此目的:

function resizeLogic() {
    if ($(window).width() < 620) {
        $("#prd_details_smaller").append('.product_title, .product_code, .prd_reviews');
        $("#short_desc").hide();
    } else {
        $(".col_prd_rgt").prepend('.product_title, .product_cod, .prd_reviews');
        $("#short_desc").show();
    };
}
resizeLogic(); // on load
$(window).resize(resizeLogic); // on window resize

就我个人而言,我会为此使用 CSS 媒体查询。使用绝对定位仍然可以轻松地将元素移动到页面上的任何位置。

关于jQuery onload 屏幕大小和屏幕调整大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27782572/

相关文章:

javascript - 如何使用jquery-tabledit通过javascript将变量传递给ajax?

python - 我认为它不会花费那么多时间(for-if条件检查循环),有更好的方法吗?

Perl 一行 if 语句

javascript - anchor 元素onClick使页面跳转到页面顶部

javascript - onclick 将单击特定 div 的 id 将 div 的标题替换为上传文件的标题

javascript - 通过删除函数重置 if/else 语句的 Else 部分中的修改值

c - 如何在递归中传递前一个参数

R将函数作为变量传入

vba - 添加多个附件(附件数量不同)

jquery - 停止 jQuery 事件函数