假设我有这两个功能:
function z(a,b,c){
$("#d").click(function(){
var sum = a+b+c;
x(sum)
}
function x(first){
var second = first*(first+1);
var third = second*(second+1);
$("#e").animate({
"left": "+=first%"
},{
complete:function(){
z(first, second, third)
});
我希望第一个函数[function z
]使用不同的参数触发,并在动画后“取消绑定”其之前的.click() event
。
因此,第一次点击#d
,#e
移动(a+b+c)%
。
第二次点击#d
,#e
移动(a+b+c)+(a+b+c)*(a+b+c+1)+(a+b+c)*(a+b+c+1)*((a+b+c)*(a+b+c+1)+1)%
。第三次......
我尝试使用unbind
,但似乎不适合这种情况。我最终编写了越来越多的杂乱代码。我不认为使用unbind
是一种聪明的方式。
答案 0 :(得分:3)
function z(a,b,c){
x(a+b+c);
}
function x(first) {
var second = first*(first+1);
var third = second*(second+1);
$("#e").animate({
"left": "+=first%"
},{
complete:function(){
z(first, second, third)
});
$(document).ready(function(){
$("#d").one("click",function(){
z(1,2,3);
});
});
“one()”函数将确保您的“点击”事件在您第一次点击它后不受约束。