我有一个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加载时,该元素才可用。