向按钮数组添加事件处理程序不起作用javascript

Adding event handlers to array of buttons does not work javascript

我正在尝试将事件处理程序分配给数组中的按钮。当我按下这个按钮时,它应该调用一个函数,但它不调用,也不知道为什么。这是我的密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
var btns = [];
    btns.push($('').addClass('mvn_no mvn'));
    btns.push($('').addClass('mvn_n mvn'));
    btns.push($('').addClass('mvn_ne mvn'));
    btns.push($('').addClass('mvn_o mvn'));
    btns.push($('').addClass('mvn_c'));
    btns.push($('').addClass('mvn_e mvn'));
    btns.push($('').addClass('mvn_so mvn'));
    btns.push($('').addClass('mvn_s mvn'));
    btns.push($('').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" ));

一旦这段代码运行起来,我就点击按钮,什么也不会发生。我甚至尝试调用一个只包含警报的虚拟函数,但它仍然不起作用。我还尝试获取给定元素上的事件,它返回未定义的。感谢您的帮助。


所以,经过数小时的调试,我终于找到了破坏代码的罪魁祸首。那是该死的以东人。在$($options.expose.elementMovement).empty().append(table);上,当我删除它时,代码工作得很好。我不知道为什么它不能像以前那样工作,但我很高兴它现在能工作。即使把空的放在单独的行中也会破坏我的代码。


尝试如下操作:http://jsfiddle.net/adgsc/

1
2
3
4
5
6
7
8
9
10
11
12
13
$('#myTable').on({
    'mousedown': function() {
        moveImage(this);
    },
    'mouseup': function(something) {
        clearTimeout(tMovement);
        status.text('mouseup: ' + $(this).attr('class'));
    },
    'mouseout': function(something) {
        clearTimeout(tMovement);
        status.text('mouseout: ' + $(this).attr('class'));
    }
}, 'div');

这可能不是你想要的,但希望它能引导你走上正确的道路。

有关jquery的.on()函数的更多信息,请访问:http://api.jquery.com/on/