開発中で
JSで生成したHTML要素にjqueryで書かれたclickイベントが効かない現象がありました。いろいろお調べたところ、javascriptからあとから生成したHTML要素は、もともと書かれたclickなどのイベントを勝手に移除されるようです。
僕の対策は、
JSで生成したHTML要素に再度clickなどのイベントをbindする。
例(抜粋):
// イベントを付けたい要素
$("#myEvt").empty();
// 要素にHTML要素を書き込み
$("#myEvt").append("<span>クリック</span>");
// 要素に再度イベントをbindする
$("#myEvt").bind("click", yourEvtFunction);
そうすると、ID=#myEvt要素にclickイベントを入れました。その要素をクリックするとイベントを正しく動けると思う。
また、jqueryで.live()を使えば、JSで生成したHTML要素を再度bindしなくでもイベントを動くと思いますが、なんかjquery1.9.Xから.liveを廃止されたようですので、残念。
以上、メモを。
♪ 当記事がお役に立ちましたらシェアして頂ければ嬉しいです。
★ 当記事を閲覧の方は下記の【関連記事】も閲覧していました。
コメントする