1

私はDojoを初めて使用し、イベントの処理方法を理解しようとしています。イベントを要素にバインドするには、少なくとも3つまたは4つの異なる方法があるようです。混乱を増すために、一部のメソッドは新しいv1.7で非推奨になっているようです。そのため、私のWeb検索をここ数か月に制限しても役に立ちませんでした。

この例を機能させるだけで良いスタートになります(私がまだ理解していないことの1つは、どのモジュールを何のためにロードする必要があるかということです)。

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

あなたの例では、これは道場スタイルの正しい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 に答える