Javascript 媒体查询更改时销毁Jquery函数

Javascript 媒体查询更改时销毁Jquery函数,javascript,jquery,media-queries,enquire.js,Javascript,Jquery,Media Queries,Enquire.js,希望你能帮助我 我在论坛上搜索过,我想这是一个特例 我正在构建的项目支持媒体查询(响应式),我有3列,有时4列需要在等高。我已经用Jquery开发了一个脚本,它非常有效。见下文 var maxHeight = 0; function setHeight(column) { $(window).load(function () { column = $(column); column.each(function () { if ($(

希望你能帮助我

我在论坛上搜索过,我想这是一个特例

我正在构建的项目支持媒体查询(响应式),我有3列,有时4列需要在等高。我已经用Jquery开发了一个脚本,它非常有效。见下文

var maxHeight = 0;
function setHeight(column) {
    $(window).load(function () {
        column = $(column);
        column.each(function () {
            if ($(this).height() > maxHeight) {
                maxHeight = $(this).height();
            }
        });

        column.height(maxHeight);
    });
}

setHeight('.package-container .package-3');
但是,当我要使用767px以下的移动版本时,我如何在不刷新页面的情况下销毁这个setHeight()功能

另一种选择是,我可以使用inquire.js、javascript媒体查询在下面执行此操作,但如果我直接从桌面/平板电脑转到移动设备,我无法在不刷新的情况下使其工作。像下面这样

enquire.register("(max-width:767px)", {
    match : function() {
        setHeight(null);
    }
}).listen();

以下是我在“移动优先”方法中要做的,你不必担心“破坏”任何东西,只要将高度设置为“自动”:

enquire.register("screen and (min-width : 768px)", {
    match : function() {
        // set equal height for columns
        setHeight('.package-container .package-3');
    },
    unmatch : function() {
        // set auto height
        $('.package-container .package-3').height("auto");
    }
}).listen();

当你低于767px时,你就不能不调用
setHeight
吗?想想看,在移动版本中:列不存在,所有的东西都叠在一起。与此同时,CSS查询帮助了我
@media(最大宽度:767px){.package content{height:100%!important;}}}
是在窗口调整大小事件上调用的setHeight函数,还是在加载时仅调用一次?使用$(window).load()加载一次,我可以使用条件尝试$(window).resize()。谢谢你的提醒。我之所以使用$(window).load(),是因为它在所有图像下载后都能为我提供准确的测量。嘿,约翰,谢谢你帮我解答一些询问问题:)省去了我的回答,这总是很好的!