如何在满足某个条件后执行一次代码?

时间:2016-11-07 06:01:07

标签: javascript jquery resize

我想要发生的是当窗口达到一定宽度(1023px)时交换2个div的内容但我不希望每次调整大小时它都继续运行交换代码它已达到该宽度后的窗口(1023px):

frame.setSize(image.getWidth(), image.getHeight());

5 个答案:

答案 0 :(得分:0)

使用==

$(window).resize(function() {

  if($(window).width() == 1023) {      

    var $left_col = $('.about-left-col').html();
    var $right_col = $('.about-right-col').html();

    $('.about-right-col').html($left_col);
    $('.about-left-col').html($right_col);

  } 

});

答案 1 :(得分:0)

你可以设置一个简单的变量(在你调整大小的函数之上)并检查它。

var wasResized = false;

调整大小时将其设置为true,并在条件为真/假时添加检查。

答案 2 :(得分:0)

使用全局变量来存储状态

var notChanged = true;

$(window).resize(function() {

  if($(window).width() <= 1023) {      
    if(notChanged) {//test if its not changed
    var $left_col = $('.about-left-col').html();
    var $right_col = $('.about-right-col').html();

    $('.about-right-col').html($left_col);
    $('.about-left-col').html($right_col);
     notChanged = false;//set it to false so the code doesn't trigger anymore 
    }
  } 

});

答案 3 :(得分:0)

你可以这样试试,

$(window).resize(function() {

      if($(window).width() <= 1023) {      

        var $left_col = $('.about-left-col').html();
        var $right_col = $('.about-right-col').html();

        if($('.about-right-col').html() != $left_col){
            $('.about-right-col').html($left_col);
            $('.about-left-col').html($right_col);
        }else{
            return false;
        }
      } 

});

答案 4 :(得分:0)

您可以执行类似的操作,使用闭包在函数执行时使用计数器,然后根据需要继续操作。

$(window).resize(reposition);

function reposition = ({
  var count = 0;

  return function() {
    if (count !== 0) {
      return;
    }
    if ($(window).width() <= 1023) {
      var $left_col = $('.about-left-col').html();
      var $right_col = $('.about-right-col').html();

      $('.about-right-col').html($left_col);
      $('.about-left-col').html($right_col);
      count++;
    }

  };
})();