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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> this, getElementById и Google Chrome 
:(
    Опции темы
fridkaratel
  Дата 4.1.2010, 21:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

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



Не могу сообразить, в чем прикол и как его исправить...

Имеется вот что:
Код

function MY_CLASS() {
    this.Obj = document.getElementById('myclass-obj');
}
MY_CLASS.prototype.SetEvent = function() {
    this.Obj.setAttribute('onclick', 'alert(1);');//Аттрибут "цепляется", но на клик реакции нет
    this.Obj.onclick = function() {alert(1);};//Реакции тоже нет
    alert(this.Obj);//Выводит все верно - это объект DivHTML
    document.getElementById('myclass-obj').setAttribute('onclick', 'alert(1);');//Работает?!
}


Ну... и в чем тут подвох?
Кстати, эта конструкция тоже не работает:
Код

$(this.Obj).attr('onclick', 'alert(1);');

PM   Вверх
Amphiluke
Дата 4.1.2010, 21:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


   ☽
***


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

Репутация: 35
Всего: 112



Вы уверены?
Простейший тест срабатывает.  smile 
Код

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Документ без названия</title>
<script type="text/javascript">
function MY_CLASS() {
    this.Obj = document.getElementById('myclass-obj');
}
MY_CLASS.prototype.SetEvent = function() {
    this.Obj.onclick = function() {alert(1);};
}

window.onload = function() {
    var myclss = new MY_CLASS();
    myclss.SetEvent();
}

</script>
</head>

<body>
    <div id="myclass-obj">aaaaaa</div>
</body>
</html>

PM   Вверх
fridkaratel
Дата 4.1.2010, 21:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

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



Во блин... использую просто jQuery, забыл просто после $('#myclass-obj') поставить get(0)...

Но все равно не пойму, почему так работает:
Код

var mc = new MY_CLASS();
MY_CLASS.prototype.SetEvent = function() {
      this.Obj.setAttribute('oncontextmenu', "mc.ContextMenu();return false;");
}


А так = нет...
Код

var mc = new MY_CLASS();
MY_CLASS.prototype.SetEvent = function() {
      $(this.Obj).attr('oncontextmenu', "mc.ContextMenu();return false;");
}


PS: Потребовалось написать доп. код для Google Chrome... И, блин... столько проблем возникло... В Mozilla все работает как часы...
PM   Вверх
12345c
Дата 5.1.2010, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



А так?
Код
$(this.Obj).attr('oncontextmenu', function(){mc.ContextMenu();return false;});



--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
fridkaratel
Дата 5.1.2010, 11:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

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



Так тоже не работает...  smile 
PM   Вверх
12345c
Дата 6.1.2010, 00:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Круглый
****


Профиль
Группа: Vingrad developer
Сообщений: 2018
Регистрация: 26.12.2005
Где: наша не пропадала ?

Репутация: 57
Всего: 101



Ну это баг JQuery, для Хрома, значит, недотестировали. А вообще, не обязано так работать. Транслятор переводит строку в функцию. Нигде не указано, что он должен это делать.


--------------------
Google Code Playground - онлайн-отладка своих примеров HTML+JS без регистрации, с сохранением по URL, без кириллицы. Go
PM WWW   Вверх
fridkaratel
Дата 6.1.2010, 13:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 221
Регистрация: 22.10.2007
Где: Error connect to MySQL Da...

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



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


 




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


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

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