Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   onClick прошу помощи (https://javascript.ru/forum/events/19116-onclick-proshu-pomoshhi.html)

pernik 26.07.2011 15:43

onClick прошу помощи
 
вопрос как добавить onClick в елемент
вот что делаю
result1 = document.getElementById("result");
var p = document.createElement("input");
p.type='checkbox';
p.name="hotel_list[]";
p.onClick = "search_preload('hotel')"; <-???????
p.value = '603';
p.id='www';

и в итоге <input id="www" type="checkbox" name="hotel_list[]" value="603">
а хотелось бы <input id="www" type="checkbox" name="hotel_list[]" value="603" onClick = "search_preload('hotel')">

myaso 26.07.2011 16:04

Попробуй:
p.setAttribute("onClick", "search_preload('hotel')" );

B@rmaley.e><e 26.07.2011 16:11

1. Нужное свойство объекта зовется onclick (целиком в нижнем регистре).
2. Записывать в него нужно функцию, а не строку.
3. Использовать setAttribute неправильно. Для этих целей есть addEventListener / attachEvent.

myaso 26.07.2011 16:24

B@rmaley.e><e ,
но setAttribute работает же)))
а тогда p.onclick - правильно?

pernik 26.07.2011 16:38

myaso рулит )

B@rmaley.e><e 26.07.2011 16:51

myaso, да ну?
elem.setAttribute('onclick', 'alert(123)')
(смотреть в старых IE)
И это не говоря уже о том, что:
1. Внутри строки нет подсветки синтаксиса.
2. Не контролируются синтаксические ошибки.
3. Сложно писать многострочный код, приходится объявлять новую функцию (в глобальном пространстве имен, причем!).
4. Невозможно использовать замыкания. Если с примитивными значениями еще можно справиться вставкой их значения в строку, с объектами ничего не поделать. Опять же, придется отправлять его куда-нибудь в глобальное пространство имен.

myaso 26.07.2011 17:10

B@rmaley.e><e, и так во всех ie? или только в старых(я в 6ке посмотрел)? а остальные как? mozilla как-то странно себя ведет.
в опере нормально работает, только сегодня делал.
не подскажешь, где можно почитать про такие полуподдерживаемые вещи?

B@rmaley.e><e 26.07.2011 17:29

Цитата:

Сообщение от myaso
и так во всех ie? или только в старых(я в 6ке посмотрел)?

Понятия не имею, я не пользуюсь таким подходом.

Какого-либо сайта, где были бы собраны все подобные нюансы, подсказать не могу.


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