1

我正在使用 YUI 向 div 添加拖放支持。它还响应点击。不幸的是,即使在拖放操作之后,单击行为也会生效。这是一个代码片段:

// Create a DOM object for the group tag.
div = document.createElement('div');
div.className = 'group';
div.onclick = function() { beginEditName(); }
container.appendChild(div);

// Enable drag/drop for the group tag.
dragdrop = new YAHOO.util.DD(div);
dragdrop.scroll = false;
dragdrop.on('dragEvent', function(ev) { onDrag(ev); });
dragdrop.on('endDragEvent', function(ev) { onEndDrag(ev); });
dragdrop.setXConstraint(0,0);

单击应该编辑文本,而拖放应该移动标签。但是,onclick 事件正在触发,以便在移动标记后开始文本编辑。

我可以围绕这个问题编写代码,但是有没有更直接的 YUI 方法来区分简单的单击和拖放?

4

1 回答 1

2

迈克尔,

http://ericmiraglia.com/yui/demos/ddclick.php

查看源代码,如果您对此有任何进一步的问题,请告诉我(yahoo dot com 的 ericmiraglia)。

修改。我会在这里复制代码,这样如果这个人从他的服务器上取下代码,人们就可以检查源代码。

var beingDragged = false;
var dd = new YAHOO.util.DD("drag");

dd.subscribe("mouseDownEvent", function(e){
    beingDragged = false;
});
dd.subscribe("startDragEvent", function(e) {
    beingDragged = true;
});
dd.subscribe("mouseUpEvent", function(e) {
    if(beingDragged) {
        alert("dragged")
    } else {
        alert("clicked");
    }
})
于 2008-11-20T04:40:28.537 回答