innerHTML и делегирование события - PullRequest
1 голос
/ 07 мая 2010

У меня есть div, содержащий несколько div, которые обновляются каждые 25 мс с использованием innerHTML (по соображениям производительности) Я пытался использовать делегирование событий для захвата событий, но ничего, что я делаю, не фиксирует событие click. Я думаю, что это может быть связано со скоростью обновления содержимого. Любые идеи будут приветствоваться.

Мой код:

$(document).ready(function () {
var canvas = $('#gCanvas')[0];

$(document.body).delegate('a', 'click', function (e) {
    console.log(e.target);
});

var sprites = [];
for (var i = 0; i < 100; i++) {
    sprites[i] = {x: i+10, y: i+10};
}


var doIt = function () {
    var s = '';

    for(var i = 0; i < sprites.length; i++) {
        var spr = sprites[i];
        spr.x++;
        spr.y++;

        s+= '<a id="s'+i+'" class="s" style="left:'+sprites[i].x+';top:'+sprites[i].y+'"></a>';
    }

    canvas.innerHTML = s;
};
//doIt();
setInterval(doIt, 50);

});

Спасибо

Mark

1 Ответ

1 голос
/ 07 мая 2010

легко, если вы используете jquery. есть функция .live , но я не уверен, что она достаточно быстра. в качестве альтернативы вы можете попытаться проверить исходный код jquery, чтобы найти код .live () и найти решение

UPDATE

если вы пытаетесь создать игру, то вы можете попробовать использовать svg для хороших браузеров и vml для плохих.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...