За последние 24 часа нас посетили 35344 программиста и 1814 роботов. Сейчас ищут 903 программиста ...

JS -сущ-ему элементу не навешивается событие (пример внутри)

Тема в разделе "PHP для новичков", создана пользователем php_user, 21 дек 2014.

  1. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    Добрый день. Подскажите, в примере ниже для нового элемента- добавленное событие отрабатывает, а для старого элемента- обработчик события не добавляется- в чем может быть дело?
    Код (PHP):
    1. <!DOCTYPE HTML>
    2. <html>
    3. <head>
    4. </head>
    5. <body>
    6. <script type="text/javascript">
    7.  
    8.     function giveOnclick(Element) {
    9.         document.getElementById("changeIt").style.color = 'red';
    10.         return false;
    11.     }
    12.  
    13.     var OnlineChat=new Object();
    14.     OnlineChat.divchat=document.createElement('div');
    15.     OnlineChat.divchat.id = "newElement";
    16.     OnlineChat.divchat.innerHTML = 'new Element';
    17.     OnlineChat.divchat.onclick=giveOnclick; 
    18.     document.getElementsByTagName("body")[0].appendChild(OnlineChat.divchat);
    19.  
    20.     document.getElementById("oldElement").onclick = giveOnclick;
    21.  
    22. </script>
    23. <div id="oldElement">old Element</div>
    24. <div id="changeIt" style="color: green;">Изменить цвет</div>
    25. </body>
    26. </html>
     
  2. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: JS -сущ-ему элементу не навешивается событие (пример вну

    ну в такой нотации по идее элемент в дереве после попытки навесить событие идет. его к тому моменту еще нет.
     
  3. php_user

    php_user Новичок

    С нами с:
    19 апр 2014
    Сообщения:
    91
    Симпатии:
    0
    Да, точно, спс

    Добавлено спустя 22 минуты 19 секунд:
    Re: JS -сущ-ему элементу не навешивается событие (пример внутри)
    Еще вопрос- как передать параметр в giveOnclick- ниже пример
    Код (PHP):
    1. <!DOCTYPE HTML>
    2. <html>
    3. <head>
    4. </head>
    5. <body>
    6. <div onclick="add();">add event</div>
    7. <div id="new">click to change color</div>
    8. <div id="changeIt" style="color: green;">Изменить цвет</div>
    9. <script type="text/javascript">
    10.  
    11.     function giveOnclick(Element) {
    12.         document.getElementById("Element").style.color = 'red';
    13.         return false;
    14.     }
    15.     function add(Element) {
    16.     
    17.     //document.getElementById("new").onclick = giveOnclick;  
    18.     
    19.     document.getElementById("new").onclick = function(){giveOnclick("changeIt")};
    20.     // document.getElementById("new").onclick = function(){document.getElementById("changeIt").style.color = 'red';};
    21.  
    22.         return false;
    23.     }
    24. </script>
    25. </body>
    26. </html>
    Добавлено спустя 3 минуты 32 секунды:
    Re: JS -сущ-ему элементу не навешивается событие (пример внутри)
    нашел ошибку- "Element" заменить на просто Element
     
  4. torrius

    torrius Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    35
    Симпатии:
    1
    Re: JS -сущ-ему элементу не навешивается событие (пример вну

    Код (Text):
    1.  
    2. <!DOCTYPE HTML>
    3. <html>
    4. <head>
    5. <script type="text/javascript">
    6.     function giveOnclick(Element) {
    7.         Element.style.color = 'red';
    8.     }
    9.     function add(Element) {
    10.         document.getElementById("new").setAttribute("onclick","giveOnclick("+Element+")");
    11.     }
    12. </script>
    13. </head>
    14. <body>
    15. <div onclick="add('changeIt');">add event</div>
    16. <div id="new">click to change color</div>
    17. <div id="changeIt" style="color: green;">Изменить цвет</div>
    18. </body>
    19. </html>
     
  5. Ganzal

    Ganzal Суперстар
    Команда форума Модератор

    С нами с:
    15 мар 2007
    Сообщения:
    9.893
    Симпатии:
    965
    Re: JS -сущ-ему элементу не навешивается событие (пример вну

    torrius, не должно быть инлайн скриптов в идеале
     
  6. torrius

    torrius Активный пользователь

    С нами с:
    28 июн 2014
    Сообщения:
    35
    Симпатии:
    1
    Re: JS -сущ-ему элементу не навешивается событие (пример вну

    согласен, в идеале должно быть все в идеале))), однако, был вопрос:
    параметр передан, скрипт работает.
    Если будет вопрос "как сделать в идеале", будет и соответствующий ответ ;)