ある記事のコメントを投稿する際にオンクリックイベントを発生させてAjaxで登録していました。
非同期通信でコメントが追加・編集される為、すごく便利。
ですが、ここで問題発生。
ユーザーが2個以上登録した場合に、当然編集ボタンはそれぞれの記事に表示されます。
①編集ボタンクリック
②別の編集ボタンクリック
③登録
上記のような処理をしたときに、オンクリックだとイベントの追加処理になっていくので、①のコメントに対してもオンクリック内のイベント(関数)が走ります。
結果、変わらなくて良いコメントまで編集されたことになりました。
(実際はAjaxのpostデータは同じものなので、同じレコードを何回も編集するSQLが発行されるのですが。。。)
そんな時は、.on()の反対の.off()を使用すると処理がうまくいきます。
.off()はセレクタのイベントをキャンセルするので、重複して処理されてしまうイベントの発火前に.off()を挿入してあげることで、重複することがなくなります。
詳細はこの記事が参考になったので、こちらを見てください。
http://qiita.com/nekoneko-wanwan/items/3d3da95f1127f743397d