Objeto JS this.method () quebra via jQuery
Tenho certeza de que há uma resposta simples para isso, mas é sexta-feira à tarde e estou cansada. :(
Não tenho certeza de como explicar isso, então vou em frente e postar código de exemplo ...
Aqui está um objeto simples:
var Bob =
{ Stuff : ''
, init : function()
{
this.Stuff = arguments[0]
}
, doSomething : function()
{
console.log( this.Stuff );
}
}
E aqui está sendo usado:
$j = jQuery.noConflict();
$j(document).ready( init );
function init()
{
Bob.init('hello');
Bob.doSomething();
$j('#MyButton').click( Bob.doSomething );
}
Tudo funciona, exceto pela última linha. Quando o jQuery chama o método doSomething, ele está sobrescrevendo 'this' e impedindo que ele funcione.
Tentando usar apenasStuff
não funciona também.
Então, como eu me refiro às propriedades do próprio objeto de uma maneira que permita que o jQuery o chame, e também permite que o objeto trabalhe com o objeto jQuery de chamada?
ou seja, eu gostaria de poder fazer coisas assim:
doSomething : function()
{
console.log( <CurrentObject>.Stuff + $j(<CallerElement>).attr('id') );
}
(Onde<CurrentObject>
e<CallerElement>
são substituídos por nomes apropriados.)