我刚刚进入Javascript和我遇到同样的问题,不同的代码块的次数:我有一个创建一个类型元件的功能,并且做了功能这种元素的东西。在我看来很明显,我需要在元素创建后调用“做某事”功能,但是当我这样做时,它最终会运行多次,而不是我想要的。调用javascript函数太多次
这里是我的问题的一个例子:
function rightClick(){
$(".element").mousedown(function(e){
switch (e.which){case 3: alert($(this).attr("id"))};
});
};
function doubleClick(){
var counter = 0;
$(document).dblclick(function(e){
counter++;
elementId = "element" + counter;
$("#new_elements").append("<div class='element'" +
"id='" + elementId + "'" +
"style='position:absolute;" +
"top:" + e.pageY + ";" +
"left:" + e.pageX + ";'>" +
elementId+ "</div>");
rightClick();
});
在这个例子中,如果我创建4种元素和我创建第一个我右击,我最终得到4个警告框,而不是一个。如果我右键单击我创建的第二个元素,我会得到三个警报;第三个:2个警报;第四:一个警报。
谁能向我解释为什么发生这种情况,以及如何解决它,这样我每次只一个元素上我右键单击得到一个警报?
感谢您的详细响应;你写的东西很有意义,我将检查.on()和.delegate()的文档。但是,它仍然不起作用。任何其他想法? – ben
刚刚工作。再次感谢。 – ben
很高兴它的工作。祝你在JS的旅程中幸运! –