-4

コードで奇妙なことを発見しました。

drawing.activeObjects = new Array();
$(".svgobjects").on("mousedown", function(){
    console.log("clicked" + $(this).attr('id'));
    drawing.activeObjects.push(findOBJInArray($(this).attr('id')));
    console.log("aO: " + JSON.stringify(drawing.activeObjects));
});

オブジェクトを 1 回クリックすると、すべて問題ありません。しかし、もう一度クリックすると、2回実行されます。そして、7回クリックした後、コンソールで7回「クリック」され、配列で7つのオブジェクトが表示されます。

理由は本当にわかりません。サイトに 1 つのオブジェクトがあり、クリックをチェックする前に配列をクリアします。それでも、クリック数と同じ数のオブジェクトが配列に表示されます。

4

1 に答える 1

0

コードは、要素の 1 回のクリックだけをリッスンしたいだけで、それ以上リッスンしたくないことを魔法のように認識しません。そのように動作するようにプログラムする必要があります。

一度だけ呼び出されると予想される場合は、クリックのコードを削除するか、jQuery のone()を確認する必要があります。

于 2013-08-28T13:34:15.647 に答える