2016-08-29 5 views
1

http://jsbin.com/iGaHAtu/2/edit?html,css,js,outputКонтекстное правой кнопкой мыши событие

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

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

$("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. –

+0

Это не сработало –

ответ

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

+0

Я хочу элемент TR, это дает мне только текст: (Мне нужен элемент для чтения в тело от родителя или дочернего ... –

+0

@MuhammedAlmaz Вы можете использовать ['parent()'] (https: //api.jquery.com/parent/), чтобы получить родительский элемент. Используйте его так: '$ (e.target) .parent ('tr')' –

+0

@MuhammedAlmaz Если вы хотите html, вы можете сделать «alert (предупреждение) $ (e.target) .parent ('tr'). html()) ' –

2

Первое использование TR> селектор TD

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

+0

Я хочу элемент TR, это дает мне только текст :(Мне нужен элемент для чтения в тело от родителя или ребенка ... –

+0

Вы имеете в виду все TDs of TR, где вы нажимаете правой кнопкой мыши? – ameenulla0007

+0

Когда я щелкнул правой кнопкой мыши, я зашел в TR doom-элемент. Ведьма одна я нажал –

0

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; 
    }); 
});