Не работает dojo/on или dojo/connect

Я пытаюсь использовать структуру Dojo, но не могу использовать обработчики (события) для href или какого-либо другого элемента. Спасибо.

 HTML:
 <a class="one" href="#">text_one</a>
 <a id="two" href="#">text_two</a>

 JS:
 require(
    ["dojo/query", "dojo/_base/connect", "dojo/on", "weather/handlers", "dojo/domReady!"],
    function(query, connect, on){
        var test = new weather.handlers;
        test.getCities();

        query(".one").forEach(function(node, index, nodelist){
            on(node, "onClick", function(evt){
                console.log("one clicked!");
            })
        });

        query('#two').on('onClick',function(){
            console.log('two clicked!');
        })
    }
);

person Community    schedule 31.08.2014    source источник


Ответы (2)


Имя события DOM, которое вы хотите прослушать, — click, а не onClick. Прослушивание onClick элемента DOM с использованием dojo/on ничего не даст.

Если вы собираетесь подключить обработчик событий для нескольких однородных элементов, вы также можете прочитать о делегировании событий в События с Dojo.

person Ken Franqueiro    schedule 31.08.2014

Событие dom onClick использовалось до Dojo 1.7, где dojo.connect использовалось для регистрации прослушивателей событий. Например:

dojo.connect(node, "onclick", callback)

Но начиная с Dojo 1.7 onwards появился новый облегченный модуль dojo/on, который использует следующий синтаксис:

 on(nodel, "click", callback)

Префикс on был удален, а onclick стал click.

person Tarang    schedule 12.01.2015