Memos About Salesforce

Salesforceにハマってたこと!

jQuery .click(function(){}) or .on('click', 'id', function() {})

SFDCのVF側で開発をすると

は避けれない

今回、タイトルのように

clickイベントの注意点を共有したいと思います

目次

[:contents] .click(function(){}) →.on('click', 'id', function() {}) ↑↑↑ で書くべき?

.onで書いているのになぜか?効かないなのか?

理由

jQuery1.9の現象かもが

後から.appendや.html()などで追加した要素に効かない場合があります。

clickが動作しない場合の対応策

動的に変化する要素へのイベントは、

変化しない親の要素に仕込むと動きます。

対応サンプル

動作しないパターン例

$('#id').on('click',function() {
    //クリックした後の処理
});

対応の基本考えが「document」もしくは静的な親要素をセレクタに入れる

$(document).on('click','#id', function() {
    //クリックした後の処理
});

まとめ

.on('click', 'id', function() {})

を使うのが無難ではないかと思います