私はサーバーから取得しているJSONPデータからいくつかのdivを作成しています。私はdivをクリックしたときに背景画像を変更する簡単なjquery関数を実行しようとしていますが、何も表示されていないようです。私のコードはそうだ。ajaxで作成したdivで関数を実行できませんJSONP
success: function(data){
console.log(data);
for(aArray in data) {
var array = data[aArray];
$("#first").append('<p>' + array.something + '</p>');
$("#second").append('<div class="buttons btn"><p>' + array.something + '</p></div>');
$("#third").append('<div class="buttons btn"><p>' + array.something + '</p></div>');
$("#fourth").append('<div class="buttons btn"><p>' + array.something + '</p></div>');
}
上記のコードはデータを表示しますが、ボタンクラスに関数をアタッチしようとしても何も起こりません。何か間違っているのですか?もし私がページにdivを入れて、関数を実行すると、背景イメージは必要に応じて変わります。以下は私の変更bg関数です。
$(".buttons").click(function() {
$(this).removeClass("buttons").addClass("buttonsDown");
});
ご協力いただきまして誠にありがとうございます。代わりに
$('.buttons').on('click', function(evt) {
$(this).removeClass("buttons")
.addClass("buttonsDown");
});
これは完全に働いて、少し後の研究は私が後になっているようです。情報のための多くのありがとう! – JPK
あなたの答え(編集後)のコードは機能上、質問のコードと同じです。 'on()'を使うつもりならば、動的に生成されない要素に対して呼び出されるイベントデリゲーションスタイルを使う必要があり、コールバック関数をトリガする子要素のセレクタをとります。 –
申し訳ありません.live() 'は' .live() 'が廃止予定で廃止され、' .on() 'が現在私の希望をどのように働かせるか少し忘れているため、'。 – Vytautas