Определить цель клика с помощью JavaScript? - PullRequest
3 голосов
/ 05 февраля 2011

Как определить, какой объект или идентификатор или пользователь щелкнули правой кнопкой мыши?Я использую onContextMenu для запуска функции, но я не знаю, как обнаружить цель.

Ответы [ 3 ]

5 голосов
/ 06 февраля 2011
<html>
<head>
<script type="text/javascript">
    if (document.addEventListener) {
        document.addEventListener('contextmenu', function(e) {
            alert(e.target.nodeName); //or e.target.getAttribute('id') 
            e.preventDefault();
        }, false);
    } else {
        document.attachEvent('oncontextmenu', function(e) {
            alert(window.event.srcElement.nodeName); //or e.srcElement and then like above
            window.event.returnValue = false;
        });
    }
</script>
</head>
<body>
<span>Lorem ipsum...</span><br/>
body content
</body>
</html>

PS.Я видел подобный код раньше;)

0 голосов
/ 05 февраля 2011

Как упоминалось Патрик , вы получаете объект события в качестве параметра для функции обратного вызова onContentMenu, где вы можете найти элемент, вызвавший событие.Я использую этот код для кросс-браузерной совместимости.

var oE = event.srcElement || event.originalTarget;

Примечание: originalTarget зависит от Mozilla.Возможно, вы захотите обратить внимание на event.target https://developer.mozilla.org/en/DOM/event.target

0 голосов
/ 05 февраля 2011

Ваш обработчик должен принять объект события в качестве его параметра;свойство srcElement события будет объектом, который вызвал событие.

...