Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   как сделать событие для списка node. (https://javascript.ru/forum/events/21612-kak-sdelat-sobytie-dlya-spiska-node.html)

DimaRogov 17.09.2011 18:34

как сделать событие для списка node.
 
есть много элементов

<div id = 'cont'>

<div class = 'exe'><button class = 'but'>Click</button></div>
<div class = 'exe'><button class = 'but'>Click</button></div>
<div class = 'exe'><button class = 'but'>Click</button></div>

</div>

[/JS]
var div = document.getElementById('cont');
elem = getElementsByClass('add',div);
but = getElementsByClass('but',div);

// getElementsByClass - описано раньше (взята отсюда //http://javascript.ru/unsorted/top-10-functions)
// у меня получился массив
//elem[0] - первый эл списка <div class = 'exe'>
//elem[1] и тп.
[JS]

как сделать одинаковое событие для всех кнопок на div класса exe
например
чтобы при нажатии на кнопку but[0] на элементе
elem[0] ,elem[0] - например менял фон?

Octane 17.09.2011 18:43

Сначала прочитайте: http://javascript.ru/tutorial/events...rigger:-target

Здесь можно вообще без поиска элементов по CSS-классу обойтись примерно так:
function hasClass(el, cl) {
    return (" " + el.className + " ").indexOf(" " + cl + " ") > -1;
}

document.getElementById('cont').onclick = function (event) {
    event = event || window.event;
    var target = event.target || event.srcElement;
    if (hasClass(target, "but")) {
        …
    }
};

DimaRogov 17.09.2011 22:15

ок, пока не понял код, тему обязательно прочту , спасибо=)

DimaRogov 18.09.2011 16:00

Цитата:

Сообщение от Octane (Сообщение 126884)
Сначала прочитайте: http://javascript.ru/tutorial/events...rigger:-target

Здесь можно вообще без поиска элементов по CSS-классу обойтись примерно так:
function hasClass(el, cl) {
    return (" " + el.className + " ").indexOf(" " + cl + " ") > -1;
}

document.getElementById('cont').onclick = function (event) {
    event = event || window.event;
    var target = event.target || event.srcElement;
    if (hasClass(target, "but")) {
        …
    }
};

не очень понял , зачем нам сравнивать с -1 .

return (" " + el.className + " ").indexOf(" " + cl + " ") > -1

melky 18.09.2011 16:10

проверка, есть ли указанная подстрока в строке
alert(  "fjsdfhkjh".indexOf("123")  ); // -1

alert(  "fjsdfh*!*123*/!*kjh".indexOf("123")  ); // 6

DimaRogov 18.09.2011 16:52

ок, мы получили but,а возможно получить exe на котором but находиться?


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