2011-07-21 25 views
1

嘿,我不喜歡問這樣的開放性問題,但我完全失去了這個。我想弄清楚如何專門爲觸摸設備進行拖放操作。所有我見過的用於拖放的在線教程都有些奇怪,如果(IE)語句使得它很難閱讀,然後它們甚至不能在觸摸設備上工作。這讓我發瘋,因爲這在actionScript中很容易做到,而且我仍然在學習JS。javascript拖放,addeventlister。 - 完全失去了

但令我沮喪的是我甚至不能得到的addEventListener工作:

<html> 
<head> 
<title>Drag and Drop test</title> 
<style type="text/css"> 

#box{ 
top:200px; 
width:100px; 
height:100px; 
background:red; 
position:relative; 
} 

#box2{ 
top:200px; 
width:100px; 
height:100px; 
background:black; 
position:relative; 
} 

</style> 
</head> 
<body> 

<div id="box">something something something</div> 

<div id="box2"></div> 
<script type="text/javascript"> 

function doSomething() { 
  myImage.style.width = '200px'; 
} 

var myImage = document.getElementById('box'); 

myImage.addEventListener('click', doSomething, false); 
</script> 
</body> 
</html> 

我實際上是從另一個問題的答案拉到這個代碼的addEventListener,但它似乎並沒有工作。 如果這很重要,我正在運行safari。謝謝

+0

爲了緩解編寫跨瀏覽器DOM代碼的痛苦,我強烈建議你看看一些Javascript框架,比如Jquery或Dojo。 – hugomg

+0

我只是想首先在Javascript中學習它,所以我可以理解它不只是使用它。那有意義嗎?另外,我不想爲這個特定的項目提供跨瀏覽器支持。 – kugyousha

+0

當然。它恰好是操縱DOM,設計事物和處理事件是最令人沮喪的部分。 – hugomg

回答

0

你一定需要使用JavaScript框架。桌面Web應用中DD的複雜性已經足夠困難,更不用說在移動設備上。看看YUI3's Drag and Drop。它具有某種移動支持:

本機手勢支持已添加到3.2.0中的DD。此支持是透明的,並且實現者不應該使用 這個功能。當使用dd時,加載器將檢查設備爲 ,看它是否包含對手勢事件的支持,如果設備支持 這些事件,dd-gestures模塊將自動加載爲 以及它的依賴關係。此時,DD將像往常一樣運行,但它將利用本地手勢事件而不是基於鼠標的事件 。