innerHTML和事件委托

时间:2010-05-07 13:29:35

标签: javascript javascript-events delegation

我有一个包含多个div的div,其中使用innerHTML每25ms更新一次(出于性能原因)。我已经尝试使用事件委派来捕获事件,但我似乎没有抓住点击事件。我认为这可能是由于内容的更新速度。任何想法都会非常受欢迎。

我的代码:

$(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);

});

由于

标记

1 个答案:

答案 0 :(得分:1)

如果你使用jquery很容易。有一个.live函数,但我不确定它是否足够快。或者您可以尝试检查jquery源以查找.live()代码并找到解决方案

<强>更新

如果您正在尝试制作游戏,那么您可以尝试将svg用于好的浏览器,将vml用于坏的浏览器。