我有一个ID为Strike的按钮,但JQUERY事件似乎不起作用?此事件以前曾在这里起作用,但仅当加载DOM时按钮存在时才起作用。

dom.el('Strike').onclick = strikeSkill;


现在,我的按钮是动态生成的,因此稍后会生成“罢工”按钮。因此上面的先前代码不再起作用,因为Strike = Null

我正在使用Jquery .on函数,填满了我的参数,但是现在当我单击罢工按钮时,什么也没有发生。没有攻击。为什么是这样?

function strikeSkill() {
    activeCheck();
    if (upgradeActive == true){
        radialSelector(strike);
    }
    if (upgradeActive == false){
        HitCalc(player.cc, monster.cc);
        actor.expCounter(player.cc);
        actor.balanceCounter(player.cc, monster.cc);
    }
};

$('#Strike').on('click', '#Strike', function() {
    strikeSkill();
});

最佳答案

您当前的事件处理程序正在#Strike中寻找一个#Strike元素,这是不正确的(更何况是无效的HTML)。

您可以通过为主要选择器使用静态父元素来解决此问题:

$(document).on('click', '#Strike', function(){
    strikeSkill();
});


在示例中,我使用了document,但是为了获得最佳性能,它应该是与#Strike最接近的静态父元素,当DOM加载时,该元素才可用。

09-19 15:58