如何限制应用于<身体>在主体中的jquery数据表上执行
how to limit a click event applied to the <body> from executing on a jquery datatable in the body
我有动画数据表,当点击它们的超链接时,它们会从左侧滑入。当用户读取完可见数据表的内容后,我应用了以下代码,允许用户单击其他任何位置,将表停在一边并继续查看。我使用jQuery代码附加点击事件。。。
<script type="text/javascript" charset="utf-8">
$(document).ready( function () {$('.dtable').dataTable( {"sDom": 'rt',"sScrollY":"200px", "bPaginate":false, "bFilter":false} );**$('body').click(function() {parkDataTables();});})
</script>
不幸的是,点击数据表本身会使它停下来。我不希望这种行为。也许有人知道如何阻止这个点击事件在数据表的表面上触发。。。
非常感谢
Dennis
您可以使用而不是使用body作为选择器
$('body').children().not('.dtable')
所以你会得到
<script type="text/javascript" charset="utf-8">
$(document).ready(
function () {
$('.dtable').dataTable( {"sDom": 'rt',"sScrollY":"200px", "bPaginate":false, "bFilter":false} );
$('body').children().not('.dtable').click(function() {
parkDataTables();
});})
</script>
您应该使用
$('.dtable').click(function(){return false;});
问题是,当您单击该表时,事件会先进入表,然后传播到父级(最后传播到body
,当parkDataTables
被捕获时)。
您也可以使用stopPropagation
(http://api.jquery.com/event.stopPropagation/),因为使用return false
还可以停止表上的默认单击行为。
$('.dtable').click(function(event){
event.stopPropagation();
});
也许你可以查看此页面,看看最后的区别:http://fuelyourcoding.com/jquery-events-stop-misusing-return-false/
在您的情况下,您想尝试:
> $('body').click(function() { if $(this).hasClass('dtable'){return
> false;}) if $(this).hasClass('body'){park}
给你的身体一个"身体"类,让它可以选择。
相关文章:
- 用程序搜索JQuery数据表中的文本
- jquery数据表的自定义ko绑定
- jquery数据表在初始化时设置宽度
- 如何通过下拉值更改来更改jquery数据表的值
- 来自应用程序状态的Jquery数据表源
- 如何根据某些条件向可编辑的jquery数据表添加或删除按钮
- 如何在不使用TableTool的情况下从jquery数据表中获取选定的行索引
- Jquery 数据表选择位于第 1 页以外的其他页上的行
- jQuery 数据表 在页面上导航时,在分页表上重置行的数据
- 如果我在页面之间移动,Jquery 数据表行事件会卡住
- 引导程序 3 折叠面板中的 Jquery 数据表响应插件
- 为什么不允许在jquery数据表服务器端处理ajax中使用成功
- 对 jQuery 数据表中的所有选定行求和
- 使用jquery数据表,我可以't在不破坏FixedHead的情况下生成单元格colspan=3
- 扩展详细信息Jquery数据表的持久性
- jquery数据表显示/隐藏列添加了错误的选择
- 如何暂停和重新启动jquery数据表插件
- jquery数据表滚动条定位
- Jquery 数据表 序列化程序之后 ASP.NET 日期格式
- 具有三色行的Jquery数据表