0

我有一个问题,关于如何评估 a 是否正在动画并根据此信息阻止点击操作员。我无法使用:animated,因为我正在为动画使用 jQuery 插件,这会破坏该属性。Benjamin Powers 通过创建自定义属性并对其进行评估来回答我的问题。( http://jsfiddle.net/g5mJd/22/ )

但是我一直在玩代码,我很好奇是否可以使用变量而不是属性来复制效果。这是我的尝试:http: //jsfiddle.net/g5mJd/24/

但是,这段代码似乎不会永久改变我的变量false

function() {
        $("#block").transition({
            x: '+=100'
        }, 500, function() {
            var anim = false;
    console.log(anim)
        })

在控制台日志中,它会声明该变量为假,但如果我再次检查它,它就会变为真。我究竟做错了什么?(完整代码参见 jsfiddle)

编辑:所以我现在这个函数将 var anim "false" 变为 "false" 但这会立即变回 "true",使按钮无法点击(只有在 anim 为 "false" 时才能点击该按钮)

4

2 回答 2

2

问题出var在以下代码行中:

var anim = false;

这将创建一个同名的局部变量并将其设置为false,它不会更新另一个anim。删除var

anim = false;

...它将如下所示工作:http: //jsfiddle.net/g5mJd/25/

(不要小提琴代码顶部的var声明中删除。)anim

于 2012-12-02T03:16:28.820 回答
0

您也可以为 jquery 使用 :animated 选择器。

 $("#block").is(":animated")

会成功的。

于 2012-12-02T04:17:00.673 回答