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的集合。