読者です 読者をやめる 読者になる 読者になる

リア充爆発日記

You don't even know what ria-ju really is.

coffeescriptでファットアローとthisの両方使いたいとき

こんな感じのときの話。

<li class="someArea"><button><i class="icon-trash"></i></button></li>
  $someArea.on("click", (evt) => @obj.trigger("triggerOnClick", $(this)))

ここで俺っちが$(this)に入っててほしいのはliなんだけど、この場合は当然this=@ですから目的は果たせない。
ファットアローじゃないと@objにアクセスできないし、thisも使いたいしどうしよう困ったでも使えないからevtから辿るしかないよねと思ってtargetにしてみた。

  $someArea.on("click", (evt) => @obj.trigger("triggerOnClick", $(evt.target)))

そうすると、今度はクリックのしどころによって入ってくるものが変わってしまう。
つまり、button部分がクリックされるとbuttonが返るし、i部分をクリックされるとiが返る。
buttonの外がわの絶妙なところをクリックすればliが返るけど、当然そんなもんダメである。

で、どうしたらいいかというとcurrentTargetを使う。するとliが採れる。

  $someArea.on("click", (evt) => @obj.trigger("triggerOnClick", $(evt.currentTarget)))

この時間にハマるとキツイわ−。