【发布时间】:2015-07-02 16:04:19
【问题描述】:
这是我写的闭包:
var slider = (function(){
var count = 3;
return function(){
if (count>0) {
$("#message").html("<h1>"+count+"</h1>");
count--;
$("#message").removeClass("animated zoomIn");
$("#message").addClass("animated zoomIn");
$("#message").one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", function(){
return slider();
}());
} else{
showCube();
}
}()
});
这个闭包由一个 jquery 插件执行:
$("#fishes").addClass("animated slideOutLeft").one("webkitAnimationEnd mozAnimationEnd MSAnimationEnd oanimationend animationend", slider());
但是,回调没有被执行。有人可以指导我正确的方向吗?
【问题讨论】:
-
他为什么要使用
slider?他期望slider()返回one想要的处理程序。问题在于return中的(),在倒数第二行中。 -
不。它不起作用。我尝试更改滑块。我想知道为什么回调无法附加到 dom 元素。
-
如果有帮助, one('','') 本身就是一个 jquery 插件的处理程序。即,一旦 dom 元素上的动画效果结束,就会触发一个。
标签: javascript jquery callback closures