3

jQueryプラグインを使って比較的簡単なことをしたいと思っています。その中のクリックイベントについては完全にはわかりません。

これが機能する簡単な例です...

$.fn.testy = function() {
  var testElem = this.find('p');
    testElem.click(function(){
      testElem.addClass('highlighted');
      ^^^^^^^^
   });

};

$("div").testy();

ここで、 を書く代わりにtestElem.addClass('highlighted');を入力すると、次のthis.addClass('highlighted');エラーが発生します。Uncaught TypeError: Object #<HTMLParagraphElement> has no method 'addClass'

thisこのコンテキストではjQueryを参照していることを理解しています。変数を再利用するだけで機能させていますが、それは間違っていると感じています。クリックしているものをターゲットにするにはどうすればよいですか?

たとえば、スクリプトを書いているだけなら、次のように書きます。

$('a').click(function(){
  $(this).addClass('active');
});

a指定された要素内の要素のみをターゲットにしながら、どうすればそれを行うことができますか?

4

2 に答える 2