Javascript 使用jQuery将事件绑定到表单元格

Javascript 使用jQuery将事件绑定到表单元格,javascript,jquery,html,Javascript,Jquery,Html,这是我的标记: <div id="divContainer"> <div> <table></table> </div> <div> <table></table> </div> .... </div> 但我没有收到任何警报。它们显示了应用事件侦听器的方式很奇怪 $('#divContainer').on

这是我的标记:

<div id="divContainer">
    <div>
        <table></table>
    </div>
    <div>
        <table></table>
    </div>
    ....
</div>

但我没有收到任何警报。

它们显示了应用事件侦听器的方式很奇怪

$('#divContainer').on('mouseenter','td',function() {
    alert('mouse entered');
});
另外:缓存td元素很好,但是为什么不坚持使用更简单的东西呢

$allTd = $('#divContainer td');

他们认为你应用事件监听器的方式很奇怪

$('#divContainer').on('mouseenter','td',function() {
    alert('mouse entered');
});
另外:缓存td元素很好,但是为什么不坚持使用更简单的东西呢

$allTd = $('#divContainer td');

未绑定事件处理程序的原因是,当您输入文档就绪处理程序时,
元素不存在

您应该为此使用事件委派。比如说

window.jQuery(function($) {
    $('#divContainer').on({
        mouseenter: function(e) {
            alert('hover');
        }
    }, 'td');
});
通过这种方式,
#divContainer
元素侦听事件,并在事件源于
时对其执行操作


您还遇到了一个范围问题,
$allTds
变量仅在文档就绪处理程序中定义,不在
SomeFunction
函数的范围内。

事件处理程序未绑定的原因是当您输入文档就绪处理程序时,
元素不存在

您应该为此使用事件委派。比如说

window.jQuery(function($) {
    $('#divContainer').on({
        mouseenter: function(e) {
            alert('hover');
        }
    }, 'td');
});
通过这种方式,
#divContainer
元素侦听事件,并在事件源于
时对其执行操作


您还遇到了一个范围问题,
$allTds
变量仅在文档就绪处理程序中定义,不在
SomeFunction
函数的范围内。

在您的标记示例中,我没有看到任何
变量。。你确定它们存在吗?@爆炸药丸,它们是动态添加的。在firebug中,我看到了
td
s的集合。。你确定它们存在吗?@爆炸药丸,它们是动态添加的。在firebug中,我看到了
td
s的集合。