$ .on()执行多次。为什么?

时间:2013-08-28 13:05:25

标签: javascript jquery

我在代码中发现了一件奇怪的事情:

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));
});

当我点击我的对象一次时,一切都很好。但是当我再次点击它时会运行两次。在我的七次点击之后,我可以在控制台中看到7次“点击”,在阵列中看到7个对象。

我真的不知道为什么。我的网站上有一个对象,在检查点击之前我清除了我的数组。但是我在数组中看到了与我所做的点击次数一样多的对象。

1 个答案:

答案 0 :(得分:0)

代码并不神奇地知道你只想听一遍元素而不是更多。您需要对其进行编程,使其以这种方式运行。

如果您只希望它被调用一次,那么您需要删除点击代码,或者您可以查看jQuery的one()