Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Передать id в функцию и работать с объектом, не работет в IE 
:(
    Опции темы
Prontit
  Дата 15.4.2013, 09:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 87
Регистрация: 19.10.2011

Репутация: нет
Всего: 1



Добрый день!!

Достал этот IE. Не могу элементарную вещь сделать. Динамически создаю таблицу (здесь пример без php, но суть такая же), в id и в value записаны цифры по порядку. необходимо при наведении присваивать ячейки определенный класс (для выделения цветов), при снятии выделения другой класс, при нажатии третий класс. работает везде кроме IE.

Код

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8" />

<script language="javascript" type="text/javascript">
function getSit(val)
{
    elem = document.getElementById(val);
    elem.classList.add('myclass');
}
</script>

</head>
<table>
    <tr>
        <td onclick="getSit(this.id)" onMouseOver="mOver(this.id)" onMouseOut="mOut(this.id)" id="1">1</td>
        <td onclick="getSit(this.id)" onMouseOver="mOver(this.id)" onMouseOut="mOut(this.id)" id="2">2</td>
        <td onclick="getSit(this.id)" onMouseOver="mOver(this.id)" onMouseOut="mOut(this.id)" id="3">3</td>
    </tr>
    <tr>
        <td onclick="getSit()" onMouseOver="mOver()" onMouseOut="mOut()" id="4">4</td>
        <td onclick="getSit()" onMouseOver="mOver()" onMouseOut="mOut()" id="5">5</td>
        <td onclick="getSit()" onMouseOver="mOver()" onMouseOut="mOut()" id="6">6</td>
    </tr>
</table>
</html>


так как id совпадает с value, то без разницы откуда брать идентификатор. Как сделать лучше и кроссбраузернее? использую jQuery можно и его сюда прилепить.

При этом варианте IE ругается так

Сведения об ошибке на веб-странице
Сообщение: Предполагается наличие объекта
Строка: 19
Символ: 1
Код: 0
URI-код: http://localhost/test.php

Это сообщение отредактировал(а) Prontit - 15.4.2013, 09:37
PM MAIL ICQ Skype   Вверх
skyboy
Дата 15.4.2013, 11:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 10
Всего: 260



где делось <body>?
Цитата(Prontit @  15.4.2013,  08:29 Найти цитируемый пост)
onclick="getSit()"

приводит к вызову getSit без параметров, так?
а затем по коду:
Код

function getSit(val)
{
    elem = document.getElementById(val);
    elem.classList.add('myclass');

это как? найти элемент с id undefined и изменить у него класс?
не говоря уже о том, что classList — только в IE10 появится
PM MAIL   Вверх
sQu1rr
Дата 16.4.2013, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 597
Регистрация: 11.11.2008
Где: london

Репутация: 1
Всего: 13



Юзайте jQuery и будет вам счастье, могу привести пример с jQuery, в таком тривиальном примере, ваш код сократиться аж в 2 раза smile
PM MAIL Skype GTalk   Вверх
JAYBE
Дата 16.4.2013, 15:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 220
Регистрация: 27.3.2008

Репутация: нет
Всего: 0



Код

domElement.getAttribute("id");

PM   Вверх
Sanchezzz
Дата 21.4.2013, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1670
Регистрация: 19.11.2006
Где: Voronezh

Репутация: 3
Всего: 60



Замените все id которые используются ради того что бы хранить только число на специальный data-id , data-*
jQuery
Код

function getSit(_this){
  var id = $(_this).attr('data-id'); // или  .data('id')  или prop('data-id');
 $(_this).addClass('myClass');
} 

Чет я логики задачи не понимаю зачем эти Id когда мы ставим класс у того же элемента.


--------------------
Понравился ответ "+" по репе, не забываем закрывать тему, заказы в LS.
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0455 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.