Mootools addEvent с несколькими идентификаторами - PullRequest
1 голос
/ 10 октября 2011

Как я могу использовать эту функцию чаще:

$('GotoHome').addEvent('click', function(event) {
    event = new Event(event).stop();
    scroll.toElement('middlerightwrapper');
});

Если я создаю несколько ссылок с ID="GotoHome", это больше не работает, только с одним идентификатором.Я не хочу дублировать, как, GotoHome1, GotoHome2, GotoHome3

Ответы [ 2 ]

3 голосов
/ 10 октября 2011

Я бы предложил добавить общий класс к вашим элементам и использовать функцию долларов для добавления обработчика кликов:

HTML

<a href="" class="common-class" id="GotoHome1">Goto Home 1</a>
<a href="" class="common-class" id="GotoHome2">Goto Home 2</a>
<a href="" class="common-class" id="GotoHome3">Goto Home 3</a>

Mootools

$$('.common-class').addEvent('click', function(event) { 
    event = new Event(event).stop(); 
    scroll.toElement('middlerightwrapper'); 
});

Функция долларов возвращает массив всех элементов, соответствующих селектору.

1 голос
/ 10 октября 2011

Вы не можете иметь более одного элемента со знаком in (например, id ДОЛЖЕН быть уникальным на вашей странице), это не проблема или требование mootools, это html (хотя браузер простит много свободных программ) .

Вы должны полагаться на классы, отличные от id

$$('.GotoHome').addEvent('click', function(event) { 
     event = new Event(event).stop(); scroll.toElement('middlerightwrapper'); }
);

или, если у вас есть вмещающий контейнер, вы можете использовать делегирование событий, чтобы иметь одну точку входа вместо нескольких функций addEvent:

 $('container-id').addEvent("click:relay(.GotoHome)", function(event) { 
     event = new Event(event).stop(); scroll.toElement('middlerightwrapper'); }
);

Я не на своей рабочей станции и не могу проверить синтаксис реле в диспетчере событий, стоит проверить

Редактировать

Подсказка по делегированию событий с официального сайта mootools

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...