2017-12-13 14 views
1

テスト目的でjavascript \ jQueryを使用してキャンバス上のクリックをシミュレートしたいのですが、解決策が見つかりませんでした。ここに私のコード:HTML5キャンバスをクリックしてください

var e = new jQuery.Event("click"); 
      e.pageX = X[index]; 
      e.pageY = Y[index]; 
      $("#gamecanvas").trigger(e); 

それは可能ですか?

例:game(私はランダムにウェブ上を検索しました)JS \ jQueryからどのようにクリックできますか?あなたはjqueryのための非常によく文書化されたAPIを通して、あなた自身で検索しないのはなぜ http://api.jquery.com/trigger/

答えて

1

役立つかもしれないそれはclickmousedown、....などのかどうか、イベントのキャンバスに使用さに依存

上記の例では、lucnイベントのu

座標最後に計算を使ってボールをlunchingためclientXclientY

セカンド(mousedown)を取得する座標計算するための

ワン(mousemove)だからあなたのコードは次のようでなければなりません:SES 2つのイベント

var mousemove = new jQuery.Event("mousemove"); 
mousemove.clientX = x;//passed valuue 
mousemove.clientY =y;//passed valuue 

var mousedown = new jQuery.Event("mousedown"); 

$("#canvas").trigger(mousemove); 
$("#canvas").trigger(mousedown); 

ここでは、入力座標またはjusを渡して球をluanchするスクリプトを作成したplunckerが、ボールをバスケットに直接投げる:)

は、これが役立ちますここlivePlunker

参照のURLコードplunker

希望を参照してください:、pageXとpageYは、キャンバスの座標を取得していないので、

+0

すばらしい答え!!!ありがとうございました!それは問題を解決しました:) – ABC

0

なしあなたはjQueryのためのドキュメントはそう私に語ったケースを使用して知っていますか?

+0

それはJavaScriptを使用してキャンバス上をクリックする方法についてです... jQueryのではないのです。画面の座標を使用すると動作しません。 – ABC

0

この例では、あなた

$('#canvas_element').on("mousedown mouseup", function(e) { 
 
    $('#output').text($('#output').text() + (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 
 

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

working link

+0

この例題を試しましたが、うまくいきません:( – ABC

+0

たとえば、このゲーム(私はランダムにウェブ上で検索しました)http://corehtml5canvas.com/code-live/ch07/example-7.3/example.html私はJS \ jQueryからクリックしますか? – ABC

+0

okこれをチェックしてください... http://jsfiddle.net/z5YjY/ –

0

が、私は同じ問題があった。この私の自己署名パッドを作成しようとするとき。

使用この代わりには:

var e = new jQuery.Event("click"); 
      //for IE, safari, opera, chrome 
      if(e.offsetX != null) { 
      e.offsetX= X[index]; 
      e.offsetY= Y[index]; 
      } 
      //for firefox 
       if(e.layerX!= null) { 
      e.layerX= X[index]; 
      e.layery= Y[index]; 
      } 
      $("#gamecanvas").trigger(e); 
関連する問題