我是Dojo的新手,並試圖理解如何處理事件。似乎至少有3或4種不同的方式將事件綁定到元素。爲了增加混淆,一些方法似乎已經被新的v1.7所棄用,所以即使將我的網頁搜索限制到最近幾個月也沒有幫助。關於Dojo事件的教程
只要有這個例子的工作將是一個良好的開端(有一件事我還沒有想通了,是哪些模塊應加載什麼):
但除此之外,我希望能找到一個很好的參考。
我是Dojo的新手,並試圖理解如何處理事件。似乎至少有3或4種不同的方式將事件綁定到元素。爲了增加混淆,一些方法似乎已經被新的v1.7所棄用,所以即使將我的網頁搜索限制到最近幾個月也沒有幫助。關於Dojo事件的教程
只要有這個例子的工作將是一個良好的開端(有一件事我還沒有想通了,是哪些模塊應加載什麼):
但除此之外,我希望能找到一個很好的參考。
這是一個簡化的工作示例。
// 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);
});
爲了您的例子,這是在道場風格的正確的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);});
});
});
});
你是色澱道場查詢模塊,併爲新的AMD系統
好點。我已經清理了我的答案是純粹的AMD。你的答案遭受同樣的問題。 dojo.ready例如不是AMD,在這種情況下不需要,因爲你已經包含了domReady!模塊。 – 2012-04-06 03:29:38
感謝您的示例! – Christophe 2012-04-06 19:32:18
道場風格謝謝!任何想法如何讓我的例子工作?我需要forEach,因爲在實踐中,我對每個節點都有不止一個動作。 – Christophe 2012-04-05 23:04:45
我已經失去了你的最後一個例子... require和define有什麼區別? – Christophe 2012-04-06 16:22:26
define和require之間的區別在於,define有望返回一個值。最後一個例子只是指出鼠標擴展的一個好處。它是從文檔複製的,它看起來不對,因爲它沒有返回任何內容,所以我會將其更改爲require。這裏有關於裝載機的更多信息。 http://livedocs.dojotoolkit.org/loader/amd – 2012-04-06 18:16:38