关于Dojo事件的教程

时间:2012-04-05 22:12:55

标签: events dojo onmouseover

我是Dojo的新手,并试图了解如何处理事件。似乎至少有3或4种不同的方法将事件绑定到元素。为了增加混乱,一些方法似乎已经被新v1.7弃用了,所以即使将我的网络搜索限制到最近几个月也无济于事。

让这个示例工作将是一个良好的开端(我还没想到的一件事是应该加载哪些模块):

http://jsfiddle.net/sVJWY/

但除此之外,我希望找到一个很好的参考。

2 个答案:

答案 0 :(得分:3)

这是一个简化的工作示例。

// alert url when hover over link
require(["dojo/query", "dojo/on",  "dojo/domReady!"], function(query, on) {
    query("a").on("mouseover", function(evt) {
        alert(evt.target.href);
    });
});

http://jsfiddle.net/RichAyotte/sVJWY/6/

以下是forEach的示例。

require([
    "dojo/query"
    , "dojo/on"
    , "dojo/domReady!"], function(query, on) {
    query("a").forEach(function(node) {
        on(node, "mouseover", function(event) {
            alert(node.href);
        });
    });
});

http://jsfiddle.net/RichAyotte/sVJWY/7/

注意onmouseover - >鼠标悬停在代码中,或者您可以使用鼠标扩展名。

require(["dojo/on", "dojo/mouse"], function(on, mouse){
  on(node, mouse.enter, hoverHandler);
});

http://livedocs.dojotoolkit.org/dojo/on

答案 1 :(得分:2)

对于您的示例,这是dojo样式的正确javascript

require(["dojo/dom", "dojo/parser", "dojo/domReady!","dojo/on","dojo/query"],
    function(dom,parser,domReady,on,query){
        dojo.ready(function(){
            query("a").forEach(function(node){
                on(node,"mouseover", function(event){alert(node.href);});
            });
        });            
    });​

您正在使用dojo查询模块,以及新AMD系统的dojo样式