getdata,getx和gety都是异步执行的函数,第二个参数是回调函数。
首先执行
var m然后执行getdata,但是此时,getdata函数的操作并未完成,所以不会执行回调。
接着继续执行getx和gety,同理,他们也不会瞬间完成,所以回调也不会立即执行。
接着执行
alert("应该不会影响了吧")然后过了一段时间(可能是几十毫秒,你感觉不到),getdata,getx,gety执行完毕。
哪个函数先执行完毕,哪个函数的回调就先触发。
所以你看到的顺序就是乱的。
改为下面代码就可以了
del: function() {$("#box").fadeOut(200, function() {
$(this).remove()
testFn.add()
})
},