Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Galera, é o seguinte...
como chamar um método dentro de um click?
Eu preciso de um metodo por que vou usar ele entro varios outros botões...e quando eu chamar a funcao pelo objeto...como por exemplo
objeto.fechar()
var objeto = function(){
this.fechar = function(){
//Fazer algo
}
this.create = function(){
this.btnFechar = document.createElement('button');
this.btnFechar.addEvenetListener('click',function(){
//COMO CHAMAR O METODO FECHAR DO OBJETO AQUI DENTRO???
})
document.querySelector('html').appendChild(this.btnFechar);
}
}Não funcionou :(
Não consigo chamar nen pelo click do botão..nen pelo proprio objeto
teste.fechar() //Não veio
Por que não usa JQuery?
Segue exemplo pra você analisar:
tenta fazer assim:
var objeto = function(){
var th = this;
th.fechar = function(){
//Fazer algo
console.log('fechar');
}
th.create = function(){
var btnFechar = document.createElement('button');
document.querySelector('body').appendChild(btnFechar);
btnFechar.onclick = function(){
th.fechar();
};
}
};
var t = new objeto();
t.create();@Rafael da Silveira, tem erros de escopo, e sintaxe no seu código
Não deixe de pesquisar depois sobre o uso e escopo do this
O addEvenetListener também esta escrito errado
Teste isso:
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<body>
<script type="text/javascript">
var objeto = function(){
this.fechar = function(){
alert('teste');
}
this.create = function(){
var self = this;
this.btnFechar = document.createElement('button');
this.btnFechar.appendChild(document.createTextNode('Clique'));
document.querySelector('body').appendChild(this.btnFechar);
this.btnFechar.addEventListener('click',function(){
self.fechar();
});
}
}
var meuObjeto = new objeto;
meuObjeto.create();
</script>
</body>
</html>Galera, muito obrigado deu certo aqui..
Essa jogadinha de usar uma variavel pra recuperar o elemento não sabia... ajudou bastante aqui
Obrigado!
Veja se isso lhe atende.