event.clientX только для чтения? - PullRequest
0 голосов
/ 27 мая 2010

Работаю в IE 8, в основном, но пытаюсь написать переносимое решение для современных браузеров. Использование Telerik Controls.

Я ловлю «Показывающее» клиентское событие RadContextMenu и пытаюсь настроить его координаты. Членам clientX, clientY и x, y события DOM нельзя присвоить новое значение. Visual Studio разрывается с ошибкой «htmlfile: Member not found».

Моя цель - заставить RadContextMenu отображаться внутри RadEditor, когда пользователь щелкает по нему (при определенных условиях это требование со стороны руководства). Поэтому я фиксирую событие onclick для области содержимого RadEditor (radEditor.get_document().body;). Затем я вызываю show(evt) в контекстном меню, где «evt» - это объект события, соответствующий событию щелчка.

Поскольку содержимое RadEditor находится в IFRAME, вы должны отрегулировать положение события щелчка, прежде чем отобразится контекстное меню. Это делается в событии «Показ». Тем не менее, я не могу присвоить значение членам .clientX и друзьям. Это как если бы javascript временно забыл об операциях с целыми числами + и + =.

Возможно ли, что эти члены в какой-то момент стали readonly / const?

var evt = args.get_domEvent();

while (node) {
    evt.clientX += node.offsetLeft; //'Member not found' here.
    evt.clientY += node.offsetTop;
    node = node.offsetParent;
}

evt.clientY += sender.get_element().clientHeight;

1 Ответ

0 голосов
/ 27 мая 2010

Хорошо, я нашел решение здесь . Перед передачей события в функцию contextMenu.show () я делаю копию и вместо этого передаю ее. Это работает шарм!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...