Js Fiddle:check here
我在类的方法中有setInterval()。它在创建单个实例时正常工作,但在创建多个实例时失败。创建多个实例时,只有最后创建的实例可以正常工作,其他停止。
我的脚本如下:
public void getHistory(List<History> arg0) {
intent = new Intent(
Constants.HISTORY_RESULT);
intent.putParcelableArrayListExtra(Constants.MESSAGE, (ArrayList<History>) arg0);
getApplicationContext().sendBroadcast(intent);
}
***in another activity***
if (action.equals(Constants.HISTORY_RESULT)) {
onHistory(intent.getParcelableArrayListExtra(Constants.MESSAGE));
答案 0 :(得分:7)
thi = this;
正在全局命名空间中创建,因此每次初始化new timer()
时都会被覆盖。
将其更改为var thi = this;
。
https://jsfiddle.net/daveSalomon/h5e8LLg3/`
我不喜欢thi
作为var名称 - 它看起来像是一个错字。我通常使用_this
或_scope
。
答案 1 :(得分:0)
试试这个:
function timer(){
var thi = this;
this.ran = Math.floor(Math.random() * 100) + 1;
this.cls = this.ran+'_ocar';
this.div = '<div class="'+this.cls+'">'+this.cls+'</div>';
$('body').append(this.div);
this.run = function(){
thi.k = 0;
setInterval(function(){
console.log(thi.cls);
$('.'+thi.cls).html(thi.k++);
},1000);
}
}
one = new timer();
one.run();
setInterval(function(){
new timer().run();
},5000)
您的变量thi
需要在本地声明并移动。