1

我有以下代码:

        $("#content-listing").slideUp(800, function(){
            $("#loading").hide();
        });

哪个工作正常。但是有没有一种方法可以“撤消”slideUp 或删除它的功能?

matchMedia用来根据用户的屏幕尺寸应用某些功能。如果调整浏览器窗口的大小,slideUp会干扰新转换的布局,所以我想找到一种方法来删除它?

4

4 回答 4

0
if ($(window).width() <= 400 ) {
     $("#content-listing").slideUp(800, function(){
     $("#loading").hide();
}

您也可以尝试resize事件:

$(window).resize(function() {
  var w = $(this).width();

  if (w <= '400') {
      $("#content-listing").slideUp(800, function(){
          $("#loading").hide();
      });
  }       
})

更新:

尝试dequeue()方法:

      $("#content-listing").queue('slide', function(){
           $(this).slideUp(800, function(){
                $("#loading").hide();
           });
      })

      if (w <= '400') {
          $("#content-listing").dequeue('slide')
      }    
于 2012-06-29T00:11:17.747 回答
0

我认为您正在寻找 $("#...").stop();

http://api.jquery.com/stop/

于 2012-06-29T00:04:14.207 回答
0

我最终做的是对body标签应用一个类,onclick以便我可以专门参考移动 div 来投射 jQuery voodoo:

$("body").addClass("mobile");

到哪:

    $("body.mobile #content-listing").slideUp(function(){
        $("#loading").hide();
    });

然后一旦window.resize发生,我mobilebody

$("body").removeClass("mobile");
于 2012-06-29T16:23:53.197 回答
0

我会在 slideUp 代码周围放置一个条件语句。

就像是

var isMobile = //whatever you're using to decide what your toggle threshold is

if(isMobile)
{

    $("#content-listing").show();
    //Or whatever you want to do in the case of a small screen
} else {
    $("#content-listing").slideUp(800, function(){
        $("#loading").hide();
    });
}
于 2012-06-29T00:09:10.150 回答