Я уверен, что есть простой ответ на этот вопрос, но в пятницу днем, и я устал.: (
Не знаю, как это объяснить, поэтому я просто отправлю пример кода...
Вот простой объект:
var Bob =
{ Stuff : ''
, init : function()
{
this.Stuff = arguments[0]
}
, doSomething : function()
{
console.log( this.Stuff );
}
}
И здесь он используется:
$j = jQuery.noConflict();
$j(document).ready( init );
function init()
{
Bob.init('hello');
Bob.doSomething();
$j('#MyButton').click( Bob.doSomething );
}
Все работает, за исключением последней строки. Когда jQuery вызывает метод doSomething, он переопределяет 'this' и останавливает его от работы.
Попытка использовать только Stuff
тоже не работает.
Итак, как я могу ссылаться на собственные свойства объекта таким образом, что позволяет jQuery вызывать его, а также позволяет объекту работать с вызывающим объектом jQuery?
то есть. Я хотел бы иметь возможность делать такие вещи:
doSomething : function()
{
console.log( <CurrentObject>.Stuff + $j(<CallerElement>).attr('id') );
}
(где <CurrentObject>
и <CallerElement>
заменены соответствующими именами.)