Faço o debug no chrome, e vejo que mesmo com a variável contador igual a zero, o método contagem fica em loop infinito.
To usando o backbone.js para montar as views.
[code]
initialize : function() {
this.contagem();
},
contagem : function(){
if (contador > 0){
$('#tempo').html(contador);
$('#barra-interna').css('width', contador * 10);
contador = contador - 1;
intervalID = setInterval(this.contagem, 1000);
}
else {
window.clearInterval(intervalID);
$('#tempo-container').hide();
$('#link').css('display', 'block');
intervalID = null;
}
},
[/code]
O código inteiro da view:
[code]
define(function(require) {
var chat = require('core/chat');
var Backbone = require('backbone');
var $ = require('jquery');
var agentOfferTemplate = require('hbs!templates/agent-offer');
var contador = 20;
var intervalID;
AgentOfferView = Backbone.View.extend({
template : agentOfferTemplate,
initialize : function() {
this.contagem();
},
events : {
'click .ok' : 'acceptOffer'
},
render : function() {
this.$el.append(this.template(this.model.toJSON()));
return this;
},
contagem : function(){
if (contador > 0){
$('#tempo').html(contador);
$('#barra-interna').css('width', contador * 10);
contador = contador - 1;
intervalID = setInterval(this.contagem, 1000);
}
else {
window.clearInterval(intervalID);
$('#tempo-container').hide();
$('#link').css('display', 'block');
intervalID = null;
}
},
acceptOffer : function(){
chat.acceptOffer(this.model.get('offerId'), this.model.get('workgroup'));
this.remove();
}
});
return AgentOfferView;
});
[/code]