回答
您可以使用event delegation,只有一个事件处理程序基本连接到您的整个文档,并获得该事件最初派遣元素,使用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"
});
});
检查为例here。
如果你要复制的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>
原来也需要删除。 我正在尝试对Scriptaculous拖放功能的某些代码进行删除原来的操作,然后在droppable div中写入一个新的代码,该代码必须具有相同的类和ID。 我不会说谎,我不是一个很好的JavaScript,我发现我的灵感来自这里:http://ashishware.com/MochikitDnD.shtml 但是他分配了一个id的Math.random (),而我需要保留相同的ID,所以我正在尝试修补此问题,并使其能够处理未知数量的可拖动项。不过,我相信我有第二部分。 – 2009-08-09 04:11:02
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;
// ...
}
为了确保这一点很清楚,e会得到我的元素的值,然后我可以传递给一个全局变量,和/或调用一个新的函数作为参数传入e,是的? – 2009-08-09 04:15:39
是的克里斯。您可以传递实际的对象或ID,如CMS在他的示例中所做的那样。 – Alex 2009-08-09 10:19:24
请将此代码插入到您的JavaScript。
document.getElementById("article").onmouseup(handMu);
- 1. 获取从指定刚刚注册的用户
- 2. 如何获得刚刚创建的元素的id?
- 3. 提取的xpath刚刚同级元素
- 4. Facebook:刚刚使用Photos.createAlbum创建的相册ID
- 5. Python Selenium获取刚刚输入的元素变量
- 6. 刚刚创建的HTML元素的动态ID
- 7. 如何获取刚刚点击的按钮用户的ID?
- 8. 从刚刚通过$ add添加的元素中获取关键字使用AngularFire
- 9. 您如何查看刚刚创建的手册页?
- 10. 如何获取我刚刚插入的文件的主键ID?
- 11. 获取刚刚插入的记录的ID?
- 12. 获取刚刚发布的记录ID的最简单方法
- 13. 如何获取刚刚插入的最新记录的ID?
- 14. 如何获取刚刚上传的Youtube电影的视频ID
- 15. 获取行的ID刚刚插入MySQL数据库
- 16. Magento - Adminhtml - 获取刚刚创建的订单ID
- 17. 从刚刚检索到的id获取Google Doc
- 18. SQLSERVER + PHP:获取刚刚插入的行ID
- 19. 从我刚刚创建的帖子获取ID - Facebook图形API
- 20. Mysql获取刚刚插入的行
- 21. MoveToElement元素刚刚在屏幕上时
- 22. Django用户注册刚刚停止工作
- 23. 获取刚刚从jQuery中选择的值选择了多个select元素
- 24. 如何抓住刚元素的id - 使用硒的webdriver 2
- 25. Django:获取刚刚从视图中的表单获得的ID(尚未保存)
- 26. 刚刚提交的mysql id字段
- 27. 刚刚保存的Java MongoDB ID
- 28. CSS应用属性刚刚创建的第一个元素
- 29. 如何刚刚从用户ID获取特定项目的视图
- 30. jQuery的下一个()刚刚添加的元素
完美,谢谢。 – 2009-08-09 04:23:41
不客气! – CMS 2009-08-09 04:24:19
值得注意的是,在你处理这样的事件时,你需要更加注意你在处理器内部做了什么,因为它可能被解雇*很多*。 – 2009-08-09 04:25:38