右键单击弹出菜单慢

Posted

技术标签:

【中文标题】右键单击弹出菜单慢【英文标题】:Right Click Popup Menu Slow 【发布时间】:2013-04-04 13:40:53 【问题描述】:

我在我的 KendoUI Grid 上实现了一个右键弹出菜单。

问题是,它很慢。

当您右键单击时,脚本需要获取被单击行的 ID。我正在这样做:

salesGrid.on('mouseup', '[role="row"]', function(e)
  button = e.which ;
  if(button == 3)
  
    $(this).bind("contextmenu",function(e)
      return false
    );

    var id = null ;
    id = $('td', this).find('.id-span').data('id') // ~500ms

我也试过了:

id = $(this).children('td').children('.id-span').data('id') ;

还有:

id = $('td:first span', this).data('id') ;

所有这些都需要大约 500 毫秒的时间来执行,这在用户体验方面太长了。

这是它正在遍历的表:

<tr data-uid="16e14dc2-a2fa-4979-a1ff-cd5113223aa6" role="row">
    <td role="gridcell"><span class="id-span" data-id="1">A</span></td>
    <td role="gridcell">3</td>
    <td role="gridcell">Lenze</td>
    <td role="gridcell"><span class="popoverintel" data-trigger="hover" data-placement="bottom" data-part-id="1">33.8202-E</span></td>
    <td role="gridcell">Supply</td>
    <td role="gridcell">New</td>
    <td role="gridcell">3</td>
    <td role="gridcell">€</td>
    <td role="gridcell">575.00</td>
    <td role="gridcell">1725.00</td>
</tr>

有没有办法让它更快?

【问题讨论】:

这里的this是什么,是表格、行、单元格还是单元格内的内容 试试$('.id-span', $(this).closest('tr')).data('id') @Arun P Johny 我已经添加了上下文。 $(this).children().first().children().first().data("id") 怎么样? $('.id-span', $(this).closest('tr')).data('id') 速度一样 :( 【参考方案1】:

尝试将选择器 '[role="row"]' 更改为 'tr[role="row"]'

【讨论】:

以上是关于右键单击弹出菜单慢的主要内容,如果未能解决你的问题,请参考以下文章

WPF 之 左键弹出操作菜单,并禁用右键菜单

右键单击列表视图以显示 contextmenustrip,但弹出菜单出现在屏幕的不相关点

如何设置secureCRT的鼠标右键为弹出文本操作菜单功能

右键单击 TreeView 中的节点,然后使用 c# 弹出一个菜单,其中包含“打开方式”选项 [关闭]

鼠标点右键弹出的菜单怎么设置啊?

VB 中弹出式菜单怎么写