我正在尝试将事件处理程序分配给数组中的按钮。当我按下按钮时,它应该调用一个函数,但没有,也不知道为什么。
这是我的代码
var btns = [];
btns.push($('<div />').addClass('mvn_no mvn'));
btns.push($('<div />').addClass('mvn_n mvn'));
btns.push($('<div />').addClass('mvn_ne mvn'));
btns.push($('<div />').addClass('mvn_o mvn'));
btns.push($('<div />').addClass('mvn_c'));
btns.push($('<div />').addClass('mvn_e mvn'));
btns.push($('<div />').addClass('mvn_so mvn'));
btns.push($('<div />').addClass('mvn_s mvn'));
btns.push($('<div />').addClass('mvn_se mvn'));
for ( var i = 0; i < btns.length; i++) {
btns[i].mousedown(function() {
moveImage(this);
}).mouseup(function() {
clearTimeout(tMovement);
}).mouseout(function(){
clearTimeout(tMovement);
});
table.find('td:eq(' + i + ')').append(btns[i]);
$($options.expose.elementMovement).empty().append(table);
}
alert($._data( $("div.mvn_so"), "events" ));
一旦这段代码运行,我点击按钮,什么也没有发生。我什至尝试调用一个只有警报的虚拟函数,但它仍然不起作用。我还尝试在给定元素上获取事件,但它返回未定义。任何帮助表示赞赏。
最佳答案
因此,经过数小时的调试,我终于找到了破坏我代码的罪魁祸首。这是该死的.empty()
在 $($options.expose.elementMovement).empty().append(table);
当我删除它时,代码工作得很好。我不知道为什么它不能正常工作,但我很高兴它现在可以工作。即使将空放在单独的行中也会破坏我的代码。
关于javascript - 将事件处理程序添加到按钮数组不起作用 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14596434/