我刚刚开始使用 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 个警报;第四种:一次警报。
谁能向我解释为什么会发生这种情况,以及如何解决它,以便每次右键单击一个元素时我只会收到一个警报?