-2

画像の選択したポイント座標を取得して変数に保存する機能に取り組んでいます。必要なのは、2 つのポイントを選択してから、他の関数を実行することです。以下のコードはポイント座標を取得するのにうまく機能していますが、この関数を 2 つのポイントに対してのみ実行しますか? アドバイスをありがとう。

$(".bg_image").click(function(e) {
                    var offset = $(this).offset();
                    var relativeX = (e.pageX - offset.left);
                    var relativeY = (e.pageY - offset.top);

                    $('<div>', {
                        'class':'point',
                        'css': {
                            'position': 'absolute',
                            'left':     relativeX +'px',
                            'top':      relativeY +'px',
                            'width':    '3px',
                            'height':   '3px',
                            'background-color': '#fff'
                        }
                    })
                    .appendTo('#output');
                    console.log("X: " + relativeX + "  Y: " + relativeY);

                });
4

3 に答える 3

1

ユーザーが画像を何回クリックしたかをカウントする変数を作成する必要があります。

var count = 0;

$(".bg_image").click(function(e) {
  count++;
  if ( count <= 2 )
  {
    //execute your code
  }
});
于 2012-11-11T15:44:32.747 に答える
1

次のようにグローバル変数を追加します。

var clickCount = 0;

が呼び出されるたびに.click()、カウンターをインクリメントします。また、値を確認します。

$(".bg_image").click(function(e) {
    clickCount++;
    if (clickCount > 2)
        return false;
    ...
});
于 2012-11-11T15:44:58.097 に答える
0

クリック数を取得することはオプションです。もう1つの考慮事項は、配列を使用して配列の長さを取得することです。

var coordinates = [];


$(".bg_image").click(function(e) {

  coordinates.push([relativeX,relativeY]);

  // do some operation to make sure you didn't add the same coordinate twice

  if ( coordinates.length <= 2 )
  {
     // execute your code
  }

});

欠点は、パフォーマンスが少し遅くなる可能性があることです(おそらく認識されない)。

利点は、クリックした場所に保存するため、コードの他の部分に使用できることです。たとえば、分析を行ったり、距離計算を実行したりします。

于 2012-11-11T15:59:39.617 に答える