让我说我有这个功能:
$("#click").click(function myFunction(){
var id = $(this).attr("id");
myFunction();
});
现在,显然,在click事件之后,id ==“click”,但是当函数重新加载时,id == undefined。 有没有办法可以在不重新定义变量的情况下重新加载函数?
答案 0 :(得分:0)
你似乎在递归地调用一个闭包函数。在闭包函数myFunction
是点击事件处理程序的callback
的上下文中,$(this)
解析为执行click
的元素,因此您将能够获取函数中的id
属性。但是,当您再次致电时,$(this)
并未解析为同一元素,这就是您id
将undefined
的原因。
答案 1 :(得分:0)
您以递归方式调用闭包函数。这是一个工作副本,您可以使用回调函数来访问变量:
$("#click").click(function() {
var id = $(this).attr("id");
console.log("click id: " + id);
myFunction(id);
});
function myFunction(id) {
console.log("id: " + id);
}