JavaScript var 在等待 jQuery 完成动画处理时被覆盖
javascript var being overwritten while waiting for jquery to finish animating
我有以下代码:
myObject = function(id){
var self = this;
var id = id;
self.printId = function(){
console.log(id)
}
}
var index = 1;
function createObj(){
myobj = new myObject(index);
index++;
jquery.animate({...},5000,function(){
myobj.printId();
});
}
createObj();
createObj();
输出为:
2
2
我期望:
1
2
显然,当调用第二个 createObj() 时,我原来的 myobj 被覆盖了。如何确保我的 myobj 在等待动画完成时不会被覆盖?
您需要
在声明新对象时放置 var 关键字。
这是一个范围问题。
function createObj(){
var myobj = new myObject(index);
index++;
jquery.animate({...},5000,function(){
myobj.printId();
});
}
相关文章:
- jQuery无法处理覆盖
- 将事件处理程序放在HTML按钮上,而不覆盖其默认功能
- 如何在更改的事件处理程序中忽略Polymer元素上默认属性的初始覆盖
- 覆盖批处理IP地址以查找位置
- 触摸事件处理程序将覆盖单击处理程序
- 覆盖 jquery .load() 函数 - 处理回调
- JavaScript var 在等待 jQuery 完成动画处理时被覆盖
- jQuery UI widget - 如何调用覆盖事件处理程序
- 如何在 Redux 中创建全局错误处理程序并在需要时覆盖它
- 处理 jQuery 事件时在 JavaScript 类中覆盖的 'this' 关键字
- Internet Explorer 在 jQuery 鼠标向下处理程序中添加覆盖层后泄漏单击事件
- 如何获取覆盖对象的事件处理程序
- 如何用类选择器覆盖id选择器的jQuery事件处理程序
- 一个事件处理程序覆盖第二个事件处理程序
- 不能覆盖主干保存成功处理程序
- Dojo 如何覆盖事件处理程序
- 如何通过覆盖类型处理JSON数据中的空字符串
- 通过each()添加的jQuery事件处理程序似乎覆盖了之前的事件处理程序
- 在没有处理程序引用的情况下覆盖侦听器,是否可以访问Ext.data.store上的(可能是私有的)事件属性
- 当用户浏览器缩放时,如何处理覆盖