我在Adobe Edge工作。 我在舞台上有3个按钮:v1,v2,v3。 单击按钮时,它们会在时间轴上移动。
单击按钮1时,它会在时间轴上移动并显示按钮2已启用,按钮1和3已禁用。
单击按钮2时,它会在时间轴上移动并显示按钮3已启用,按钮1和2已禁用。
单击按钮3时,它会在时间轴上移动并显示按钮1已启用,按钮2和3已禁用。
我尝试使用bind()和unbind(),它适用于第一个按钮。但是,由于它取消绑定第三个按钮,当我到达时间轴上应该启用按钮3的位置时,它被禁用。我试图在按钮2的单击事件中再次绑定按钮但是不起作用。我该怎么办呢?
sym.$("v1").click(function() {
sym.play("p1");
sym.$("v1").unbind("click");
sym.$("v3").unbind("click");
});
sym.$("v2").click(function() {
sym.play("p2");
sym.$("v1").unbind("click");
sym.$("v2").unbind("click");
sym.$("v3").bind("click");
});
sym.$("v3").click(function() {
sym.play("p3");
sym.$("v1").bind("click");
sym.$("v2").unbind("click");
sym.$("v3").unbind("click");
});
答案 0 :(得分:1)
它应该有用。祝你好运
sym.$("v1").click(function() {
func(1, 2);
});
sym.$("v2").click(function() {
func(2, 3);
});
sym.$("v3").click(function() {
func(3, 1);
});
function func(i, next) {
var nextnext = ((next+1)%3 == 0) ? 3 : (next+1)%3;
sym.play("p"+i);
sym.$("v1").unbind("click");
sym.$("v2").unbind("click");
sym.$("v3").unbind("click");
sym.$("v"+ next).bind("click", function() { func(next, nextnext); });
}
答案 1 :(得分:0)
只是示例
sym.$("#v1, #v2, #v3").bind("click", myFunction);
function myFunction() {
var id = sym.$(this).attr("id");
var i = id.substr(1,3);
var next = ((i+1)%3 == 0) ? 3 : (i+1)%3;
sym.play("p"+i);
sym.$("#v1, #v2, #v3").unbind("click");
sym.$("#v"+ next).bind("click", myFunction);
}
已经过验证