Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Событие click (https://javascript.ru/forum/events/23073-sobytie-click.html)

Demin 10.11.2011 17:15

Событие click
 
Необходимо добавить событие на "67890", при этом на "12345" не ставить. Нельзя добавлять никакие теги внутрь <td id='123'>12345 67890</td> т.к. код используется позже другими скриптами и часть "12345" изменяется.

Возможно есть вариант..

<html>
<head>
</head>
<body>
<table>
<tr><td id='123'>
12345 67890
</td></tr>
</table>

<script type="text/javascript">

addEvent($('123'), "click", alert2);

function alert2() { alert("11"); }

function $( id ) { return document.getElementById( id ); }

function addEvent(elem, evType, fn) {
	if (elem.addEventListener) {
		elem.addEventListener(evType, fn, false);
	}
	else if (elem.attachEvent) {
		elem.attachEvent("on" + evType, fn)
	}
	else {
		elem["on" + evType] = fn
	}
}
</script>

</body>
</html>

Pavel M. 10.11.2011 17:32

id по моему не может начинаться с цифры

ksa 10.11.2011 21:24

Цитата:

Сообщение от Pavel M.
id по моему не может начинаться с цифры

Тут тёрли много про это... :) На последнем заседании было установлено, что таки можно...

ksa 10.11.2011 21:28

Demin, событие можно "повесить" только на элемент ДОМ... На часть "текста" - нет.

Почемучкин 13.11.2011 21:40

Можно анализировать глобально куда кликнула мышь или над чем она находится - и обрабатывать текущее слово под курсором. Будет тормозно, но наверное можно обрабатывать даже текст таким образом.

trikadin 13.11.2011 21:42

Цитата:

Сообщение от Почемучкин
Можно анализировать глобально куда кликнула мышь или над чем она находится - и обрабатывать текущее слово под курсором. Будет тормозно, но наверное можно обрабатывать даже текст таким образом.

Мёсье знает толк в извращениях)

Надо сделать слово кликабельным - обернули в спан, повесили обработчик.

Почемучкин 13.11.2011 22:11

Я хотел предложить это, но топикстартер сказал, что нельзя добавлять html-код внутрь TD. То есть нужно оставить текст внутри без изменений и в то же время отслеживать клики по этому тексту.

trikadin 14.11.2011 00:11

Почемучкин, честно говоря, не знаю, кто такой топикстартер... Но почему он так сказал?

Почемучкин 14.11.2011 01:54

trikadin,
:) topic starter = Demin

trikadin 14.11.2011 01:59

Почемучкин, вечно я вас не понимаю... :D

Честно говоря, вряд ли у него получится вычислить координату слова...


Часовой пояс GMT +3, время: 20:14.