Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.08.2012, 20:24
Новичок на форуме
Отправить личное сообщение для Kendrick Посмотреть профиль Найти все сообщения от Kendrick
 
Регистрация: 29.08.2012
Сообщений: 2

Не работает код
Добрый день. Я не силен в Javascript, знаю лишь основы, но для PHP приложения надо было написать небольшой код. Написанный код работает во всех браузерах, но отказывается работать в IE.
Собственно код:
function ou(d) {
	d.style.backgroundColor='#bebebe'; 
}
function ov(d) {
	d.style.backgroundColor='#cdcdcd';
}
function oc(d) {
	var at = d.childNodes[5].innerHTML;
	var wd = d.childNodes[3].innerHTML;
	document.tform.articul.value = at;
	document.getElementById('image1').src = 'images/'+at+'.jpg';
	document.tform.scrl.value = parseInt(document.getElementById('scdiv').scrollTop);
}

в таблице у строк установлены обработчики событий:
<tr onMouseOver="on(this);" onMouseOut="ou(this);" onClick="oc(this);">

так вот события onMouseOver и onMouseOut обрабатывются нормально, а обработчик onClick не обрабатывается. Важна эта строчка:
document.tform.articul.value = at;

Именно в ней заносятся данные в hidden input.
Заранее спасибо.
Ответить с цитированием
  #2 (permalink)  
Старый 29.08.2012, 21:20
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

alert() в oc(d) добавьте и проверьте, что получается, что нет, также в консоль посмотрите, может ошибка где
и такие вещи делаются через делегирование (target), а не на каждую строку по обработчику
выложите тестовый пример с возможностью запуска [html run]

Последний раз редактировалось bes, 29.08.2012 в 21:23.
Ответить с цитированием
  #3 (permalink)  
Старый 29.08.2012, 21:34
что-то знаю
Отправить личное сообщение для devote Посмотреть профиль Найти все сообщения от devote
 
Регистрация: 24.05.2009
Сообщений: 5,176

Сообщение от Kendrick
а обработчик onClick не обрабатывается.
дык может потому что не может найти детей под номерами 5 и 3?
var at = d.childNodes[5].innerHTML;
var wd = d.childNodes[3].innerHTML;
__________________
хм Russians say завтра but завтра doesn't mean "tomorrow" it just means "not today."
HTML5 history API рассширение для браузеров не поддерживающих pushState, replaceState
QSA CSS3 Selector Engine
Ответить с цитированием
  #4 (permalink)  
Старый 29.08.2012, 21:53
Аватар для bes
bes bes вне форума
Профессор
Отправить личное сообщение для bes Посмотреть профиль Найти все сообщения от bes
 
Регистрация: 22.03.2012
Сообщений: 3,744

<style>
	td, table {
		border: solid 1px;
		cursor: pointer;
		color: navy;
	}
	tr {
		background: lightgrey;
	}
</style>

<table>
	<tr>
		<td>11</td>
		<td>12</td>
		<td>13</td>
	</tr>
	<tr>
		<td>21</td>
		<td>22</td>
		<td>23</td>
	</tr>
	<tr>
		<td>31</td>
		<td>32</td>
		<td>33</td>
	</tr>
</table>

<script>
window.onload = function () {
	var table = document.body.children[0];
	
	table.onmouseover = function (e) {
		e = e || event;
		var target = e.target || e.toElement;
		if (target.tagName == 'TD') {
			target.parentNode.style.background = 'lightgreen';
		}
	}
	
	table.onmouseout = function (e) {
		e = e || event;
		var target = e.target || e.fromElement;
		if (target.tagName == 'TD') {
			target.parentNode.style.background = 'lightgrey';
		}
	}
	
	table.onclick = function (e) {
		e = e || event;
		var target = e.target || e.srcElement;
		if (target.tagName == 'TD') {
			alert(target.innerHTML)
		}
	}
	
}
</script>
Ответить с цитированием
  #5 (permalink)  
Старый 02.09.2012, 23:48
Новичок на форуме
Отправить личное сообщение для Kendrick Посмотреть профиль Найти все сообщения от Kendrick
 
Регистрация: 29.08.2012
Сообщений: 2

Все уже разобрался. Оказывается IE нумерует индексы по своему, нежели остальные браузеры devote, ты был прав)
Ответить с цитированием
  #6 (permalink)  
Старый 12.09.2012, 15:14
Аватар для шамаш
Новичок на форуме
Отправить личное сообщение для шамаш Посмотреть профиль Найти все сообщения от шамаш
 
Регистрация: 12.09.2012
Сообщений: 1

Добавь <tbody> в таблицу, должно стать одинаково.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
ФОТОГАЛЕРЕЯ не работает код Азбука Общие вопросы Javascript 3 23.11.2011 08:43
Не работает код в IE 6 systemiv Общие вопросы Javascript 6 05.11.2011 05:25
Код работает корректно во всех браузерах кроме IE8 Yamasa Events/DOM/Window 6 18.01.2011 06:40
Подскажите, как работает простой код (замыкание функции)? Dotod Общие вопросы Javascript 5 02.12.2009 03:03
Код не работает в седьмом Эксплорере... vol4ara Общие вопросы Javascript 0 14.07.2008 17:53