1

我在 jQuery 中有以下代码,它为 div marginTop 设置动画。

如何设置它,以便一旦边距顶部等于 900px,禁用点击事件?

$("#tmbUp").click(function(){ 
$("#tmbHolder").animate({"marginTop": "-=100px"}, "slow");
});

$("#tmbDown").click(function(){
$("#tmbHolder").animate({"marginTop": "+=100px"}, "slow");
});
4

3 回答 3

2

在调用该animate函数之前,只需检查上边距的当前值。如果是 900(或更少),请不要设置动画。

于 2012-11-15T22:40:13.300 回答
1

animate方法可以选择采用回调函数。

你想要做的是这样的:

$("#tmbDown").click (function (){ 
  $("#tmbHolder").animate (
    {"marginTop": "+=100px"}, 
    "slow",
    "swing",
    // The callback function
    function () {
      if ($(this).css ('marginTop') >= "900px") {
        $("#tmbDown").unbind ('click');
      }
    }
  );
});
于 2012-11-15T22:43:01.017 回答
1

我假设您只想在 marginTop >= 900 时禁用单击事件,并在/如果用户减少 marginTop 时再次启用它。我建议利用内置在 animate 函数中的回调函数。

$("#tmbUp").click(function(){ 
    $("#tmbHolder").animate({"marginTop": "-=100px"}, "slow", 
        function() {
            // if tmbHolder's marginTop < 900px, enable #tmbDown
        }
    );
});

$("#tmbDown").click(function(){
    $("#tmbHolder").animate({"marginTop": "+=100px"}, "slow", 
        function() {
            // if tmbHolder's marginTop >= 900px, disable #tmbDown
        }
    );
});

希望这对你有用。

于 2012-11-15T22:51:29.263 回答