上一个click未执行完不允许执行下一次click

假装很屌 2013-11-26 05:34:38
这个是一个滚动新闻的 (手动)上下翻动的函数

function roll(x) {
//执行前禁用点击事件?
var divHeight = $("#rollNews").height();
var top = parseInt($("#rollNews").css("top").replace("px", ""));
top += x;
if (divHeight == -top) {
top = 0;
}
$("#rollNews").animate({ top: top + "px" }, 1000, null, function () {
//动画执行完了启用点击事件?
});
}


animate动画1秒的执行时间,如果1秒内不停的点击翻动,会造一些我不想要的结果。
我的思路是在两处注释处解决问题,以前没做过,求解
...全文
211 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
KK3K2005 2013-11-26
  • 打赏
  • 举报
回复
按照你思路的求解 var roll = ( function(){ var isrun = false; return function roll(x) { //执行前禁用点击事件? if(isrun){return;} isrun = true; var divHeight = $("#rollNews").height(); var top = parseInt($("#rollNews").css("top").replace("px", "")); top += x; if (divHeight == -top) { top = 0; } $("#rollNews").stop(true).animate({ top: top + "px" }, 1000, null, function () { //动画执行完了启用点击事件? isrun = false; }); } })();
冰糖-雪梨 2013-11-26
  • 打赏
  • 举报
回复

function roll(x) {
            //执行前禁用点击事件?
            var divHeight = $("#rollNews").height();
            var top = parseInt($("#rollNews").css("top").replace("px", ""));
            top += x;
            if (divHeight == -top) {
                top = 0;
            }
            $("#rollNews").stop(true).animate({ top: top + "px" }, 1000, null, function () {
                //动画执行完了启用点击事件?
            });
        }
stop(true)

87,992

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧