【问题标题】:dojo Moveable events?道场可移动事件?
【发布时间】:2014-04-13 11:13:35
【问题描述】:

我正在阅读此处http://bill.dojotoolkit.org/api/1.9/dojo/dnd/move.parentConstrainedMoveable 和此处http://dojotoolkit.org/reference-guide/1.9/dojo/dnd/Moveable.html 的文档以及在网络上找到的一些示例,但我似乎不明白如何使其工作。我有这个小提琴http://jsfiddle.net/W7V2a/4/ 我想要在移动开始调用一个函数之前,在移动过程中调用另一个函数,一旦它结束第三个函数。不仅一次,而且每次移动发生。我无法让它捕捉到事件。

按钮也将一直被添加和移除,因此将可移动对象附加到像

这样的变量
var moveable = new move.parentConstrainedMoveable(button.domNode, {
        handle: this.focusNode,
        area: "content",
        within: true
    });

    on(moveable, "onMoveStart", function (e) {
        dojo.query(".container").style("backgroundColor", "red");
        alert("onMoveStart");
    });

似乎不实用。那么我怎样才能动态地创建可移动的对象并捕捉它们的事件并对这些事件做些什么呢?

【问题讨论】:

    标签: javascript dojo dom-events


    【解决方案1】:

    当您使用dojo/on 模块时,您只需传递事件的名称。在您的情况下,您必须将 "onMove" 替换为 "Move" 并将 "onMoveStart" 替换为 "MoveStart",如下所示:

    on(moveable, "MoveStart", function (e) {
        dojo.query(".container").style("backgroundColor", "red");
        alert("onMoveStart");
    });
    
    on(moveable, "Move", function (e) {
        dojo.query(".container").style("backgroundColor", "red");
        alert("onMove");
    });
    

    我还更新了您的 JSFiddle:http://jsfiddle.net/W7V2a/8/(尽管我不建议使用 alert())。


    如果您直接使用函数本身,则只需使用全名。因此,例如,如果您使用 dojo/aspect 模块,则必须使用:

    aspect.after(moveable, "onMove", function(e) {
        dojo.query(".container").style("backgroundColor", "red");
        alert("onMove");
    });
    

    不过,dojo/on 通常只用于DOM 事件处理,而不用于自定义事件。使用这些事件的最佳方式是使用moveable 本身的on() 函数,例如:

    moveable.on("Move", function (e) {
       dojo.query(".container").style("backgroundColor", "red");
       alert("onMove");
    });
    

    【讨论】:

    • 非常感谢。所以我现在有3个选择。 object.on()、aspect 和 dojo/on.
    • 是的,但它们有不同的用例。正如我所解释的,dojo/on 主要用于 DOM 事件,而dojo/aspect 则用于正常功能(非事件)。但正如你所见,这三个都可以正常工作:)
    猜你喜欢
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多