回答
您可以使用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