Javascript 使用onmousedown获取刚才鼠标所属元素的ID?

Javascript 使用onmousedown获取刚才鼠标所属元素的ID?,javascript,onmousedown,Javascript,Onmousedown,这可能吗 我正在尝试为onmousedown编写一个函数,该函数将返回您刚才单击的元素的ID,供以后在其他分区中重新创建该元素时使用。您可以使用,基本上只将一个事件处理程序连接到整个文档,并使用以下方法获取事件最初调度的元素: 编辑:您可以通过以下方式将事件分配给所有Scriptaculous DragTables: Event.observe(window, 'load', function () { Draggables.drags.each(function (item) {

这可能吗

我正在尝试为onmousedown编写一个函数,该函数将返回您刚才单击的元素的ID,供以后在其他分区中重新创建该元素时使用。

您可以使用,基本上只将一个事件处理程序连接到整个文档,并使用以下方法获取事件最初调度的元素:

编辑:您可以通过以下方式将事件分配给所有Scriptaculous DragTables:

Event.observe(window, 'load', function () {
  Draggables.drags.each(function (item) {
    Event.observe(item.element, 'mousedown', function () {
      alert('mouseDown ' + this.id); // the this variable is the element 
    });                              // which has been "mouse downed"
  });
});

检查一个示例。

如果要复制div id,一个简单的方法可能是如下所示的cloneNode:

<div id="node1">
  <span>ChildNode</span>
  <span>ChildNode</span>
</div>

<div id="container"></div>

<script type="text/javascript">
  var node1 = document.getElementById('node1');
  var node2 = node1.cloneNode(true);

  node2.setAttribute('id', 'node2');

  var container = document.getElementById('container');
  container.appendChild(node2);
</script>

子节点
子节点
var node1=document.getElementById('node1');
var node2=node1.cloneNode(真);
setAttribute('id','node2');
var container=document.getElementById('container');
container.appendChild(node2);

CMS几乎有正确的答案,但您需要使其更易于跨浏览器使用

document.body.onmousedown = function (e) {
  // Get IE event object
  e = e || window.event;
  // Get target in W3C browsers & IE
  var elementId = e.target ? e.target.id : e.srcElement.id;
  // ...
}

请将此代码插入您的javascript

document.getElementById("article").onmouseup(handMu);

原件也需要删除。我试图在Scriptaculous拖放功能中添加一些代码,这些代码将删除原始的,然后在droppable div中编写一个新的,必须具有相同的类和ID。我不会撒谎,我还不是一个javascript天才,我在这里发现了我的灵感:但是他分配了Math.random()的ID,然而,我需要保留相同的ID,所以我正在尝试将其修补,并使其与未知数量的可拖动项一起工作。不过,我相信我已经记下了第二部分。为了确保这一点是清楚的,e将有我元素的值,然后我可以将其传递给一个全局变量,和/或调用一个新函数,以传入e作为参数,是吗?是的。您可以像CMS在他的示例中那样传递实际对象或id。值得注意的是,在DOM中处理这样的事件的级别越高,您就越需要小心处理程序内部的操作,因为它可能会被触发。您知道,在进一步编码之后,当我点击scriptaculous Dragable时,这似乎不起作用。当我单击静态元素时,事件不会触发,因此不会返回ID,并且我的项目复制失败=\
document.getElementById("article").onmouseup(handMu);