我正在使用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);
Click应该编辑文本,而拖放应该移动标签。但是,触发onclick事件,以便在移动标记后开始进行文本编辑。
我可以围绕这个问题进行编码,但有一种更直接的YUI方法可以区分简单的点击和拖放吗?
答案 0 :(得分:2)
迈克尔,
http://ericmiraglia.com/yui/demos/ddclick.php
查看来源,如果您对此有任何疑问,请告诉我(yric 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");
}
})