【发布时间】:2018-05-18 09:14:02
【问题描述】:
对于该产品,鼠标单击选项仅用于动作齿轮图标。因此,如果我们左键单击任务按钮(操作图标),它将在该图标附近显示选项。
和相应的inspect(F12) html文件在这里:
<tr id="ember25477" class="ember-view content-row body-row-view container-view" tabindex="0" aria-label="">
<td id="ember25657" class="ember-view content-data item-number item-number-view container-view item-number-view-core_component_data-view-mixin container-view-core_component_data-view-mixin itemNumber">
<div id="ember25660" class="ember-view view">
<div>
</div>
</div>
</td>
<td id="ember25666" class="ember-view container-view">
<rs-icon id="ember25669" class="ember-view action-menu auto-actions-menu-button icon clickable-icon" style="width: 1em; height: 1em; font-size: 20px">
<icon glyph="action" class="action" style="font-size: 20px;">
</icon>
</rs-icon>
<span id="ember25672" class="ember-view view">
</span>
</td>
<td id="ember25678" class="ember-view content-data view view-core_component_data-view-mixin description">
<div class="container">
<div class="content">
<div class="aria-hidden">Empty cell</div>
</div>
</div>
</td>
</tr>
但是现在新的要求是选项必须在相应行上单击(右键单击和左键单击)。所以我尝试了以下代码:
click: function (event) {
var eventResult = this.get('tableView').clickRow(event, this.get('object'));
if (eventResult !== false) {
this.get('element').focus();
$('.content-row').bind('contextmenu', function(e) {
e.preventDefault();
var rowParentId = $(this).closest('tr').prop('id');
$('#'+rowParentId).find( ".action-menu" ).click();
});
}
return eventResult;
},
当我使用上面的代码时,右键单击选项在相应的行上工作正常。但选项仅接近齿轮图标。我需要选项需要靠近我单击该行的任何位置。
请为此提供任何其他建议。您的帮助将不胜感激。提前致谢。
【问题讨论】:
-
基本上你只需要你的“上下文菜单”来偏移你的鼠标所在的位置。要获取鼠标的坐标,请使用“event.pageX”和“event.pageY”。使用它并使用
$('context-menu-component').css({ top: event.pageY + 'px', left: event.pageX + 'px' })将上下文菜单移动到该坐标
标签: javascript jquery html ember.js