Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: для новичков > Не применять событие onmouseover ячейки


Автор: Cyclone 9.7.2008, 12:15
Привет.
Есть табличка, в ячейках которой, кроме такста, содежатся кнопки.
Ради эстетики повесил в <td onmouseover="Выделение ячейки яркой границей" onmouseout="Возврат к исходной границе">. Само выделение работает, но проблема в том, что событие также распространилось и на кнопку внутри ячейки, чего бы мне хотелось избежать.
То есть кнопка не должна менять свою границу при наведении.
Пробовал на кнопку вешать пустые события, но не помогало.

Подскажите, как это сделать, пожалуйста. ;)

Ради полноты картины:
Код

<td class="${cellClass}" onclick="approve()" onmouseover="highlightCell()" onmouseout="event.srcElement.style.border='inset 1px'">


Код

function highlightCell () {
    event.srcElement.style.border = 'solid yellow 1px';    
}


Автор: comtat 9.7.2008, 16:30
Если на водить на саму кнопку, бордер ячейки не меняется если же не ячейку то делает что и должен
Код

<html>
<head></head>
<body>
<script>
function highlightCell (type) {
    if (type == 'on') {
    if (event.srcElement.type == undefined) {
        event.srcElement.style.border = 'solid yellow 1px'; 
    } 
    } else {
    if (event.srcElement.type == undefined) {
        event.srcElement.style.border='inset 1px';
    }
    }
}
</script>
<table border=1>
    <tr>
    <td onclick="approve()" onmouseover="highlightCell('on')" onmouseout="highlightCell('off')">
        666
    </td>
    <td onclick="approve()" onmouseover="highlightCell('on')" onmouseout="highlightCell('off')">
        <input type='text' name='test' value='dd' />
    </td>
    </tr>
    <tr>
    <td onclick="approve()" onmouseover="highlightCell('on')" onmouseout="highlightCell('off')">
        777
    </td>
    <td onclick="approve()" onmouseover="highlightCell('on')" onmouseout="highlightCell('off')">
        <input type='button' name='dde' value='dddd' />
    </td>
    </tr>
</table>
</body>
</html>

Автор: Cyclone 9.7.2008, 17:46
Ммм... спасибо за идею.  smile Немного подкрутил, чтобы при наведении на кнопку выделялась ячейка, но не кнопка.

А есть ещё методы, кроме как отличать элементы по их атрибутам? Как-то не очень надёжно, по-моему. smile

Автор: comtat 9.7.2008, 18:26
используй getAttribute() вот небольшой http://developer.mozilla.org/en/docs/DOM:element.getAttribute

Автор: Cyclone 10.7.2008, 16:04
Благодарю.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)