2015-08-14 67 views
1

我想模拟一个鼠标单击,在负载上的特定点上的画布上绘制某些东西。我正在看这篇文章,JavaScript draw a circle on mouse click - cordinates don't match,我正在试验JS提琴在这里提供:http://jsfiddle.net/7xQZ2/22/使用jQuery模拟坐标上的鼠标点击

当你点击画布时,原来的JS小提琴绘制圆圈。是否有可能模拟这种负载点击?例如,当页面加载时,会在(200,200)处出现一个圆圈?

function simulateClick(x, y) { 
    $(document.elementFromPoint(x, y)).trigger('click') 
} 
simulateClick(200, 200) 

在此先感谢!

回答

0

创建绘制函数:

function draw(pageX, pageY, canvas){ 
    var x = pageX - canvas.offsetLeft; 
    var y = pageY - canvas.offsetTop; 

    var ctx= canvas.getContext("2d"); 
    ctx.beginPath(); 
    ctx.arc(x, y, 10,0, 2*Math.PI); 
    ctx.stroke(); 

    $('#status2').html(x +', '+ y); 
} 

然后调用这个函数不管你想要的$内(“#特”)点击(),并在页面加载,而通过合适的参数。

0
$("#special").click(function(e, x, y){ 
    x = x === undefined ? e.pageX - this.offsetLeft : x; 
    y = y === undefined ? e.pageY - this.offsetTop : y; 

    var ctx= this.getContext("2d"); 
    ctx.beginPath(); 
    ctx.arc(x, y, 10,0, 2*Math.PI); 
    ctx.stroke(); 

    $('#status2').html(x +', '+ y); 
}); 

function simulateClick(x, y) { 
    $("#special").trigger('click', [x, y]) 
} 

simulateClick(200, 200) 

会为你做它通过传递x和y的值,单击处理程序,如果您已经定义他们

http://jsfiddle.net/7xQZ2/23/