使用onmousedown事件让你只mousedowned上元素的ID?(Use onmousedo

2019-07-31 17:49发布

这可能吗?

我试图写一个onmousedown事件的函数将返回刚才点击以后使用在不同的div重新创建一个元素的元素的ID。

Answer 1:

您可以使用事件委托 ,只有一个事件处理程序基本连接到您的整个文档,并获得该事件最初派遣元素,使用event.target :

document.body.onmousedown = function (e) {
  e = e || window.event;
  var elementId = (e.target || e.srcElement).id;

  // call your re-create function
  recreate(elementId);
  // ...
}

function recreate (id) {
  // you can do the DOM manipulation here.
}

编辑:您可以将事件以这种方式你所有的Scriptaculous的拖拽元素:

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"
  });
});

检查的例子在这里 。



Answer 2:

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;
  // ...
}


Answer 3:

如果你要复制的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>


Answer 4:

请您将此代码插入到你的JavaScript。

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


文章来源: Use onmousedown to get the ID of the element you just mousedowned on?