0

さて、問題があります:イベント入力を渡さずにクリックで座標を取得するにはどうすればよいですか? 変更された関数を使用して確認アクションがトリガーされているときに座標を取得したいため、Firefox で機能するこれを行う方法がわかりませんwindow.confirm。例 :

window.confirm = function() {
    if ( arguments[0] )
    {
        text_confirm = arguments[0];
        x_pos = window.event.clientX;
        y_pos = window.event.clientY;
    }
}

これは次の場合にトリガーされます:

<a onclick="if (confirm('Are you sure?')) document.location='....'; return false;" href="javascript:void(1);"></a>

このコードは Chrome で動作しますが、明らかに Firefox では のようなものを使用する必要がありますonClick="getCoords(event);"。そして、window.confirm の上書き内でイベント入力を送信できません。

別のアプローチも高く評価されますが、これを知っておいてください:

!! onClickボタンのアクションを変更することはできませんwindow.confirm()

4

1 に答える 1

0

単純に座標を変数に保存してから、それらを関数で使用できます。

var coords = getCoords(event); if (confirm('Are you sure?')) { // use stored coords and stuff ... }

このノードで html にアクセスできない場合は、コードでリスナーを再定義できます。

$('#element').click(function(event) {
  if (!confirm('are you sure?'))
    return false;

  getCoords(event);
  // ...

  return false;
});
于 2012-09-25T12:54:33.240 に答える