0

我正在使用数据表,并且对于我想要具有on()功能的上下文菜单的任何操作。我可以使用.live()功能,但是这种升级到新版本 jquery 的方法和使用.on()下面的代码不起作用,如何帮助我改变它?

jquery LIVE 函数(使用没有问题):

$('#showCategories tbody tr').live('contextmenu', function (event) {
    var nTds_showCategories = $('td', this);
    $(oTable_categories.fnSettings().aoData).each(function (){$(this.nTr).removeClass('row_selected');});
    $(event.target.parentNode).addClass('row_selected');
    $('.showCategoriesMenus').css({'top' : event.pageY ,'left' : event.pageX-150});
    $('.showCategoriesMenus').show();
    iId_categories = $(nTds_showCategories[0]).text() ;
    event.returnValue= false;
    return false;
});

这种方法不起作用:

$("#showCategories").on('contextmenu', '#showCategories tbody tr', function(event){
    var nTds_showCategories = $('td', this);
    $(oTable_categories.fnSettings().aoData).each(function (){$(this.nTr).removeClass('row_selected');});
    $(event.target.parentNode).addClass('row_selected');
    $('.showCategoriesMenus').css({'top' : event.pageY ,'left' : event.pageX-150});
    $('.showCategoriesMenus').show();
    iId_categories = $(nTds_showCategories[0]).text() ;
    event.returnValue= false;
    return false;
});

HTML/PHP:

我正在display为所有数据表使用类

echo"
<div id='pane_category' class='scroll-pane' style='height: 364px;'>
    <ul class='styledlist' >
        <table cellpading=0 cellspacing=0 class='display' id='showCategories'>
            <thead>
                <tr>
                    <th style='width:5%;height:12px!important;'>".$popular_messages['id']."</th>
                    <th style='width:95%;'>".$admin_contents['title']."</th>
                </tr>
            <thead>
            <tbody style='line-height:25px;'>
            </tbody>
        </table>
    <ul>
</div>";
4

1 回答 1

2

删除#showCategories第二个参数..应该是这样的:

$("#showCategories").on('contextmenu', 'tbody tr', function(event){
    ....
});
于 2013-05-22T07:30:40.090 回答