javascript — контекстное меню правой кнопкой мыши

http://jsbin.com/iGaHAtu/2/edit?html,css,js,output

Посмотрите на эту ссылку, я хочу получить элемент таблицы Doom. Как мне это сделать ?
Я собираюсь попробовать этот код, но он не работает.

Например, я хочу разместить текст в столбце, когда щелкнул правой кнопкой мыши и открыл контекстное меню. Кто-нибудь может предупредить внутренний столбец?

$("body").on("contextmenu", "table tr", function(e) {
$contextMenu.css({
display: "block",
left: e.pageX,
top: e.pageY
});
console.log($(this));
return false;
});

1

Решение

использование $(e.target) для объекта jquery, представляющего элемент, по которому щелкнули. В противном случае просто используйте e.target для простого старого элемента Javascript DOM.

В вашем случае, чтобы предупредить текст столбца, попробуйте этот код:

$(function() {

var $contextMenu = $("#contextMenu");

$("body").on("contextmenu", "table tr", function(e) {
$contextMenu.css({
display: "block",
left: e.pageX,
top: e.pageY
});
alert($(e.target).text());
return false;
});

$contextMenu.on("click", "a", function() {
$contextMenu.hide();
});

});

Больше на event.target здесь: https://developer.mozilla.org/en-US/docs/Web/API/Event/target

2

Другие решения

Сначала используйте TR> TD селектор

$("table tr >td").on("contextmenu", function(e) {
alert($(this).text());
//rest of the statements goes here
});

2

Internet Explorer представил element.innerText, другие браузеры используют element.textContent.

$(function() {
$("body").on("contextmenu", "table tr", function(e) {
var target = e.target.parentElement;
var text = target.innerText || target.textContent;
alert(text);
return false;
});
});
0
По вопросам рекламы [email protected]