Как вытянуть текущий элемент по клику
Помогите разобраться , не могу понять в чем ошибка.. В общем задача следуюшая , нужно что бы вытягивался элемент из html по клику на нем и предположим выводилось значение этого элемента alertом.
window.onload=function(){ gtClassName('B'); } function gtClassName(nameClass){ with(this){ ObjectAdd = document.getElementsByClassName(nameClass); ObjectAdd.addEventListener('click' , outDate); function outDate(){ alert(this); } } } Проделывал такое с помощью jq, но на чистом js не получается.При выборке по id работает , а по классу выдает в консоли ошибку: TypeError: ObjectAdd.addEventListener is not a function; Заранее Спасибо! |
Вижу велосипед с квадратным колесом, а второе пожалуй октаэдр:yes:
|
http://learn.javascript.ru/event-delegation вот, может пригодится:)
|
Ну я новичек в js да и вообще новичек) Поэтому не без экспериментов)За статью спасибо , но если можно , объясните плз, что не так в моем подходе..
|
Ну я тоже далеко не гуру и даже мимо не проходил:)
Не знаю даже как выразить в словах свои чувства. В load window не надо было запускать gtClassName('B'). В переменную все равно попали бы все элементы. Тут не надо отслеживать загрузилась ли страница. Зачем использовать with я вообще не понимаю, а особенно когда туда глобальный объект передается. Настоятельно рекомендую забыть всякую чушь вроде jQuerry и хотябы просто прочитать учебник Ильи. Больше полезного узнаете, априори. |
Rise,спасибо, доходчиво , все понятно и ясно) . Я ж собственно и обратился к людям , что бы получить такой ответ, плохо , что не могу плюсануть))))
|
shokoMoko,
1. with(this) - что вы этим хотели сказать? У вас на этот момент нет текущего объекта. И вообще - зачем? 2. ObjectAdd = document.getElementsByClassName(nameClass); - это HTML коллекция элементов с выбранным классом (почти массив, но не совсем, поддерживает не все методы для массивов), соответственно, его надо обрабатывать циклом и назначать обработчик каждому элементу. 3. alert(this); - что вы хотите увидеть? В лучшем случае вы увидите [object HTML .....] Больше смысла в, например, alert(this.id); - чтобы убедиться, что это именно тот элемент. А вообще - для начала пишите как можно проще, пользуясь понятными вам конструкциями |
Rise, в процессе , следую вашему совету и ярлык , что вы повесили ношу под сердцем...Проблему решил благодаря вашим советам ..СПАСИБО)))
|
Dilettante_Pro, Да я понял в чем ошибка была и решил, там все не так сложно и было), а по поводу with(this) это я в книге пример видел , такой прием используется как было описано для того, что бы при инициализации свойств ненадо было писать каждый раз this просто как бы для удобства и не более...
|
Часовой пояс GMT +3, время: 17:42. |