上一个click未执行完不允许执行下一次click
这个是一个滚动新闻的 (手动)上下翻动的函数
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秒内不停的点击翻动,会造一些我不想要的结果。
我的思路是在两处注释处解决问题,以前没做过,求解
------解决方案--------------------按照你思路的求解
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;
});
}
})();