Dojo方面和按键



是否有一种方法可以捕获dojo/aspectaspect.after的按键事件?

我使用的是第三方Javascript API (ESRI JS API v3.4),它提供了一个用于在地图上绘制图形的小部件。draw toolbar小部件有一个onDrawEnd事件,该事件提供绘制的图形对象的形状作为参数。我需要确定用户在使用这个小部件在地图上绘图时是否按了CTRLSHIFT键,但我使用aspect.after(drawingToolbar, "onDrawEnd", myhandlerfunction, true)来连接绘图事件。

我知道如何确定是否按下键的唯一方法是使用event对象,当使用aspect时不提供dojo/on

任何想法我怎么能确定如果一个键是按在这里?

也许你必须走另一条路才能赶上Key-Event。

这就是我如何在文本框中捕获"Enter"事件的。当按下enter键时,调用zoomToAnlage()函数。重要的是,这个事件侦听器已经在初始阶段加载。当然,这并不能完全解决你的问题,但也许它展示了一种你如何处理它的方法。

    function initKielAnlagenNummernSuchen(){
    queryTaskAnlagenNummern = new esri.tasks.QueryTask(restServicesLocation + NameSearchService + "/MapServer/23");
    queryallAnlagenNummern = new esri.tasks.Query();
    queryallAnlagenNummern.returnGeometry = true;
    queryallAnlagenNummern.outFields = ["ANLAGE"];
    require(["dojo/keys","dojo/dom","dojo/on"], function(keys, dom, on){
        on(dom.byId("selectAnlagenNummer"), "keypress", function(evt){
            var charOrCode = evt.charCode || evt.keyCode;
            if (charOrCode == keys.ENTER) {
                zoomToAnlage();
            }
        });
    });

}

这是dojo/keys的链接:http://dojotoolkit.org/reference-guide/1.8/dojo/keys.html?highlight=keys#id2问候,米里亚姆

道场。Aspect不能连接到事件,只能连接到函数。然而,你应该能够aspect到处理该事件的函数,并窃取它的参数。

aspect.after(drawingToolbar, "someHandlerFunctionWithTheEventArg", 
    function(args){
      // access the event from the args here
    }, true);

相关内容

  • 没有找到相关文章

最新更新