我只是不确定如何在此功能中获得所需的值谢谢!
temp = exotics[i].split(',');
if ($.inArray(temp[0], tblProbables) != -1) {
item = $("<li><a id='" + temp[0] + "'" + "href='#' >" + temp[1] + "</a></li>");
item.click(function () { GetProbable(temp[0]); });
}
temp [0]是空白的,因为它在该函数空间中不存在....所以如何设置click事件以便它使用正确的param调用该函数?
答案 0 :(得分:3)
我感觉你正在以某种方式重用temp
变量。
如果是这样,您可以在函数中创建一个新的变量作用域,该函数返回一个引用正确作用域变量的函数。
function createHandler( temp ) {
return function () { GetProbable(temp); };
}
item.click( createHandler(temp[0]) );
答案 1 :(得分:1)
将值存储在临时变量中:
....
var temp0 = temp[0];
item.click(function () { GetProbable(temp0); });
如果temp0
变量多次变化(例如在循环中),则创建一个闭包:
(function(temp0){ //Inside this function, it doesn't matter if `temp` changes
item.click(function () { GetProbable(temp0); });
})(temp[0]);