これには簡単な答えがあると思いますが、金曜日の午後で、疲れています。:(
説明の仕方がわからないので、先に進んでサンプルコードを投稿します...
以下は単純なオブジェクトです。
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>
は適切な名前に置き換えられます。)