var trigger = $('.trigger', this);
何を示しているのかよくわかりません。普通のJavaScriptでは
var test = function(){}
と書けばtestオブジェクト生成だと思うのですが、上記のjQueryも何かのオブジェクトを生成しているのでしょうか?また、.triggerは、triggerクラスのセレクタを指定しているのだと思うのですが、2つめの引数のthisは何を示しているのでしょうか?
あ、すみません。もうひとつの質問を回答していませんでした。
jQueryではメソッドチェーンで書いていくのがお作法といいますか、$で表現するjQueryコアはもちろん、多くのメソッドでjQueryオブジェクトを返します。
$('#hoge').hide() .addClass('fuga') .show()
上記のコードは、以下のような感じです。
同じような構造を簡単なjavascriptで書きますと、
var hoge = { fuga:function(){alert('fuga');return this;}, piyo:function(){alert('piyo');return this;}, } hoge.fuga().piyo().fuga().piyo();// fuga piyo fuga piyo とアラート4回
こんな感じです。オブジェクトのメソッドの最後にreturn thisを書いておくと自分自身を返すことになるので、メソッドをつないで書いていくことができるのです。
ã¾ãã
$('.trigger') $('.trigger', document) //両è ã¯ã»ã¼ã¤ã³ã¼ã«
ã§ããå¾è ã¯documentã®ä¸ã®.triggerãæ¢ããã¨ããæå³ã§ãã¦ãåè ã¯ç¯å²ãæç¤ºãã¦ããªãã ãã§ãã
ã
次ã«thisã§ãããããã¯ãã®ã³ã¼ããå®è¡ããã¦ããå ´æã«ãã£ã¦å¤ãã£ã¦ãã¾ãã
æ®æ®µã¯windowãªãã¸ã§ã¯ããè¿ãã¾ããããã¨ãã°ã
var hoge = { test:function(){ return this } } hoge.test();//hogeãªãã¸ã§ã¯ããè¿ãã
ã§ãã
ããããããã§ããã®thisã®æå³ã¯å¨ãã®ã³ã¼ãã«ãã£ã¦å¤ãã£ã¦ãããã¨ãããã¨ã§ãã
ã
ã
ã
ã§ã¯ããã¾ãããä¸è¬çã«ãã®æ¸ãæ¹ãããã®ã¯ããããã¤ãã³ãã ã¨æãã¾ããjQueryå ¬å¼ã®ã¬ãã¡ã¬ã³ã¹ããã³ã¼ãä¾ãå¼ã£å¼µã£ã¦ã¿ã¾ãã
$('div.foo').click(function() {
$('span', this).addClass('bar');
});
jQuery() – jQuery API
ãã®å ´åã¯ãªãã¯ã¤ãã³ããèµ·ããã¨ãã«thisãåç §ããã¾ãããããã¯ã¯ãªãã¯ãããè¦ç´ ãè¿ãã¾ããã¤ã¾ãããã®å ´åã®$('span', this)ã¯ãã¯ãªãã¯ãããè¦ç´ ã®ä¸ã«ããspanè¦ç´ ãã¨ããæå³ã§ãã