我是 Dojo 的新手,并试图了解如何处理事件。似乎至少有 3 或 4 种不同的方式将事件绑定到元素。更令人困惑的是,新的 v1.7 似乎已弃用某些方法,因此即使将我的 Web 搜索限制在最近几个月也无济于事。
让这个示例工作将是一个好的开始(我还没有弄清楚的一件事是应该加载哪些模块):
但除此之外,我希望能找到一个很好的参考。
我是 Dojo 的新手,并试图了解如何处理事件。似乎至少有 3 或 4 种不同的方式将事件绑定到元素。更令人困惑的是,新的 v1.7 似乎已弃用某些方法,因此即使将我的 Web 搜索限制在最近几个月也无济于事。
让这个示例工作将是一个好的开始(我还没有弄清楚的一件事是应该加载哪些模块):
但除此之外,我希望能找到一个很好的参考。
这是一个简化的工作示例。
// 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);
});
对于您的示例,这是 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 样式