首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >就绪功能内部的委托功能

问就绪功能内部的委托功能
EN

Stack Overflow用户
提问于 2013-10-26 16:32:30
回答 1查看 104关注 0票数 0

我使用带有隐藏行的DataTables插件,在使用分页时,单击事件失败而不会出现控制台错误。

这是一项功能:

代码语言:javascript
复制
$(document).ready(function() {

$('#datatable tbody td a').on('click', function (e) {
    e.preventDefault();
    var nTr = $(this).parents('tr')[0];
    if ( oTable.fnIsOpen(nTr) ) {
        /* This row is already open - close it */
        $(this).addClass('glyphicon-arrow-down');
        $(this).removeClass('glyphicon-arrow-up');
        oTable.fnClose( nTr );
    } else {
        /* Open this row */
        $(this).addClass('glyphicon-arrow-up');
        $(this).removeClass('glyphicon-arrow-down');
        oTable.fnOpen( nTr, fnFormatDetails(oTable, nTr), 'details' );
    }
});

});

正如您所看到的,我正在使用委托,但是函数被包装在一个现成的函数中。我肯定这就是问题所在。我该怎么解决这个问题?

上面的问题是错误的,请看我在答案下面的评论。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-26 16:35:13

读取.on()

由于元素是动态添加的,所以不能将事件直接绑定到它们,.So必须使用事件委托。

代码语言:javascript
复制
$('#datatable').on('click', 'tbody td a', function (e) {});

语法

代码语言:javascript
复制
$( elements ).on( events, selector, data, handler );

下面的代码不是Event Delegation

代码语言:javascript
复制
$('#datatable tbody td a').on('click', function (e) {
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19609085

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档