0

最初に、この投稿を見たと言っておきましょう。

これは ( api.jquery.com.live()と同様に)、.on()将来の要素にも適用される jquery イベントを割り当てることを示しています。ただし、次のjquery:

    $("#playerImg").on("mouseenter",function () {
        console.log("works");});

最初は動作しますが、このコードを実行した後:

function move(moveTo) {
   document.getElementById(player.currentLocation).innerHTML = "";
      player.currentLocation = moveTo;
   document.getElementById(player.currentLocation).innerHTML += player.displayText;
}

ここに関連する変数があります

var player = {
    "displayText" : "<img src = 'http://3.bp.blogspot.com/-kAhN0HX-MBk/T_5bApfhbJI/AAAAAAAAAuI/lUww8xT9yV8/s1600/smileys_001_01.png'" +
        id='playerImg' "class='onTop' alt='you' border='0' />",

   "currentLocation": 0 //(i use a 5 * 5 table with id's 0-24)
}

上記のコードは実行されません。まだ存在しない要素で実行できるjqueryでイベントを作成するにはどうすればよいですか?

ここにリンク

4

1 に答える 1

5

.on()直接イベントを適用するのと同じように使用します。これは高速ですが、動的要素には適用されません。

.on()動的要素にはそのように使用する必要があります:

$(document).on("mouseenter", '#playerImg',function () {
    console.log("works");
});

documentパフォーマンスを向上させるには、最も近い静的要素にする必要があります。

補足: はid一意である必要があります。 に変更してclassください。上記のコードは ID を使用しているため、機能しない可能性があります。その場合で、何らかの理由で変更したくない場合は、これを使用します。

$(document).on("mouseenter", 'img#playerImg',function () {
    console.log("works");
});
于 2013-08-30T23:00:05.637 に答える