javascript - 道场可移动事件?

标签 javascript dojo dom-events

我正在阅读此处的文档 http://bill.dojotoolkit.org/api/1.9/dojo/dnd/move.parentConstrainedMoveable在这里 http://dojotoolkit.org/reference-guide/1.9/dojo/dnd/Moveable.html以及在网络上找到的一些示例,但我似乎不明白如何使其工作。我有这个 fiddle 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");
    });

看起来不太实用。那么我如何动态创建可移动对象并捕获它们的事件并处理这些事件?

最佳答案

当您使用 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 事件处理,而不用于自定义事件。使用这些事件的最佳方法是使用 on() moveable 本身的函数,例如:

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

关于javascript - 道场可移动事件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23042015/

相关文章:

javascript - 使用 Javascript 选择 Dojo ComboBox 项目

javascript - 在 JavaScript 中使用 Pylons 全局变量(转义括号)

javascript - Google App Script - 如何获取指定行的所有值?

php - SWFUpload 选择文件后会发生什么?

javascript - DOJO 调整 div 大小

javascript - 单击按钮时如何删除包含按钮的div?

javascript - document.ready 时显示模式对话框

javascript - 新的 dijit.form.Button 在声明时保持自动点击

javascript - 如何作为 e.target 获取指定 onClick 的确切元素?

javascript - 简单的 JavaScript 事件 : alert using inline and traditional methods