質問: link_to ~~_path(~~), method: :post ``` という形でpostにリンクを貼っていたのですが、前述したjQueryの記述が発火し linkには飛ぶものの method: :postが無効化されてしまったようで、GETでしか飛べなくなってしまいました。 stopPropagationが悪さをしていると思うのですがどういう処理をしているのでしょうか? 調べてみても親要素への伝播を止める、という記述が多く、今回ですと親要素ではなくクリックしたその要素そのものの動きが止まっているようにしか見えないので質問させてもらいました。 よろしくお願い致します。
回答: Railsで`data-method`を指定したリンクの挙動は`jquery-ujs`や`rails-ujs`が担っていますが、これらは`document`にイベントを仕掛けています。 そのため、`body > li > a`となっているような状況で`li`に`e.stopPropagation()`を仕掛けてしまうと、`document`まで`click`イベントが届かないので、リンク形式の変更ができなくなってしまいます。