2013-08-21 73 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