1

我是 Dojo 的新手,并试图了解如何处理事件。似乎至少有 3 或 4 种不同的方式将事件绑定到元素。更令人困惑的是,新的 v1.7 似乎已弃用某些方法,因此即使将我的 Web 搜索限制在最近几个月也无济于事。

让这个示例工作将是一个好的开始(我还没有弄清楚的一件事是应该加载哪些模块):

http://jsfiddle.net/sVJWY/

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

4

2 回答 2

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 -> mouseover 或者您可以使用鼠标扩展。

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

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

于 2012-04-05T22:55:02.473 回答
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 样式

于 2012-04-06T01:52:22.357 回答