2013-08-21 71 views
3

如何模擬鼠標向下並隨後在aspx頁面的畫布hmtl5部分上進行鼠標向上事件?模擬鼠標在畫布上向下和向上html5頁面

我在網上搜索,發現這個......但我不能將它關聯到我的畫布html5元素,任何人都可以幫忙嗎?

dispatchMouseEvent(element, 'mouseover', true, true); 
dispatchMouseEvent(element, 'mousedown', true, true); 
dispatchMouseEvent(element, 'click', true, true); 
dispatchMouseEvent(element, 'mouseup', true, true); 
+0

您可能會發現[this](http://stackoverflow.com/a/4176116/2264512)之一。請閱讀完整的答案。 'dispatchMouseEvent'是這裏用戶定義的函數。 –

回答

6

「模擬」事件很容易,事實上,你可以簡單地觸發它們。使用jQuery,這將成爲孩子們的遊戲(見this jsfiddle的工作爲例):

$('#canvas_element').on("mousedown mouseup", function(e) { 
console.log(e.type + " event fired at coords: " + e.pageX + ", " + e.pageY); 
}); 

x_coord = 1; 
y_coord = 1; 

var e = jQuery.Event("mousedown", { pageX: x_coord, pageY: y_coord }); 
$('#canvas_element').trigger(e); 

// execute more code 
x_coord = 255; 
y_coord = 255; 

var e = jQuery.Event("mouseup", { pageX: x_coord, pageY: y_coord }); 
$('#canvas_element').trigger(e); 

一個純JavaScript解決方案見this old SO question

+0

所以我的畫布元素被稱爲'myCanvas'。我如何用上面的代碼將鼠標向上和向下放大? – Philo

+0

我試着把上面的代碼放到一個函數中,並且在函數啓動時代碼永遠不會被調用。 – Philo

+0

你提出的問題是非常基礎的,[jQuery選擇器](http://api.jquery.com/category/selectors/)應該是一個體面的開始。另外請注意,上面的代碼實際上依賴於[jQuery](http://www.jquery.com/)庫。如果你不打算在你的代碼的某個時刻實際執行它們,聲明函數是毫無意義的。 – user2701675