【发布时间】:2012-05-14 21:19:15
【问题描述】:
我刚开始接触 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 个警报;第四种:一个警报。
谁能向我解释为什么会发生这种情况,以及如何解决它,以便我每次右键单击一个元素时只收到一个警报?
【问题讨论】:
标签: javascript jquery function call