jQuery-单击按钮并在调整大小时调用函数

jQuery-单击按钮并在调整大小时调用函数,jquery,Jquery,我只想在窗口大小

我只想在窗口大小
<767
(应该可以调整大小)和单击按钮后调用函数


如果我将窗口大小设置为
<767
并单击“搜索”,那么我的代码将非常有效。但是,如果我单击窗口大小
>767
调整大小
<767
上的按钮,它就不起作用了。我正在寻找一种方法来组合所有的
,您需要为窗口大小调整添加一个事件处理程序:

jQuery(window).resize(searchButtonClick);
编辑 如果只想在按钮至少单击一次后执行此操作,则可以在第一次单击后附加处理程序:

// keep track of whether you have attached the handler
var isattached = false;                
function searchButtonClick(){
    // attach the handler if it hasn't been added yet
    if (!isattached){                  
        isattached = true;
        jQuery(window).resize(searchButtonClick);
    }

    if(jQuery(window).width() < 767){
        jQuery('.search_mob').slideUp(500);
        jQuery('.carousel-wrapper').hide(); //show search function
        jQuery('.innerSearhPopup').slideUp(300); //show search function

        if (jQuery('.carousel-wrapper').css('display') == 'none')
            {
               jQuery('.innerSearhPopup').css({'top':'109px' });
            }

        }
}
//跟踪是否已附加处理程序
var isattached=假;
函数searchButtonClick(){
//如果尚未添加处理程序,请附加该处理程序
如果(!isattached){
isattached=true;
jQuery(窗口)。调整大小(搜索按钮单击);
}
if(jQuery(window).width()<767){
jQuery('.search_mob').slideUp(500);
jQuery('.carousel wrapper').hide();//显示搜索函数
jQuery('.innersearchpopup').slideUp(300);//显示搜索函数
if(jQuery('.carousel wrapper').css('display')=='none')
{
jQuery('.innerSearhPopup').css({'top':'109px'});
}
}
}

您需要为窗口大小调整添加事件处理程序:

jQuery(window).resize(searchButtonClick);
编辑 如果只想在按钮至少单击一次后执行此操作,则可以在第一次单击后附加处理程序:

// keep track of whether you have attached the handler
var isattached = false;                
function searchButtonClick(){
    // attach the handler if it hasn't been added yet
    if (!isattached){                  
        isattached = true;
        jQuery(window).resize(searchButtonClick);
    }

    if(jQuery(window).width() < 767){
        jQuery('.search_mob').slideUp(500);
        jQuery('.carousel-wrapper').hide(); //show search function
        jQuery('.innerSearhPopup').slideUp(300); //show search function

        if (jQuery('.carousel-wrapper').css('display') == 'none')
            {
               jQuery('.innerSearhPopup').css({'top':'109px' });
            }

        }
}
//跟踪是否已附加处理程序
var isattached=假;
函数searchButtonClick(){
//如果尚未添加处理程序,请附加该处理程序
如果(!isattached){
isattached=true;
jQuery(窗口)。调整大小(搜索按钮单击);
}
if(jQuery(window).width()<767){
jQuery('.search_mob').slideUp(500);
jQuery('.carousel wrapper').hide();//显示搜索函数
jQuery('.innersearchpopup').slideUp(300);//显示搜索函数
if(jQuery('.carousel wrapper').css('display')=='none')
{
jQuery('.innerSearhPopup').css({'top':'109px'});
}
}
}

考虑在媒体查询中使用CSS。因为这个函数有更多的条件。如检查主页或不可以,ETC ETCH可以将这些条件转换成由jQuery管理的CSS类。因为这个函数有更多的条件。比如是否检查主页等等,你可以将这些条件转换成由jQuery管理的CSS类。但是如果我把它放在函数之外,点击按钮就不会触发。这将在每次我调整窗口大小时触发。您需要一个事件处理程序来单击按钮并调整窗口大小。这样,当窗口调整大小或单击按钮时,将调用该函数。还是只想在点击按钮后执行代码?谢谢Kenneth。我只想在点击按钮后执行代码。谢谢谢谢!!我花了好几个小时想弄明白。你认为媒体查询可以做到这一点吗?只是问问。是的,当然,这是可能的媒体查询。(动画除外)。只需创建一个包含特定类的mediaquery。单击按钮后,通过jqueryb动态地将这些类添加到HTML中,但如果我将其置于函数外部,则不会在单击按钮时触发此操作。这将在每次我调整窗口大小时触发。您需要一个事件处理程序来单击按钮并调整窗口大小。这样,当窗口调整大小或单击按钮时,将调用该函数。还是只想在点击按钮后执行代码?谢谢Kenneth。我只想在点击按钮后执行代码。谢谢谢谢!!我花了好几个小时想弄明白。你认为媒体查询可以做到这一点吗?只是问问。是的,当然,这是可能的媒体查询。(动画除外)。只需创建一个包含特定类的mediaquery。单击按钮后,通过jQuery将这些类动态添加到HTML中