日期:2014-05-16  浏览次数:20373 次

问一个参数的问题
近来在搞一个日历控件
在生成一个日期格的过程中,单击该格子调用函数来确认选择的日期,代码如下:
cell.onclick   =   function(){DateTimePicker_SelectDateTimeFromCalendar(thisDate)};

大家都知道,因为生成n个格子就要循环n次,所以参数thisDate不可避免地会根据循环不断变化......
到用户单击格子的时候,thisDate永远只会取到它最新的值,而不是循环时其当天的日期......即使存在一个临时变量结果还是一样的~~~
我猜大概是单击是调用函数,函数这时候才去取参数的值,而这时参数的值早已变化,才导致这样的结果...

谁有解决的办法,其实我用别的办法间接解决了,想知道各位有没有其他处理这类问题的经验,分享一下吧,好的话分绝不会少的~~~谢谢了~~~



------解决方案--------------------
cell.onclick = new Function( "tempfunction( "+thisDate+ ") ");
function tempfunction(thisDate)
{
DateTimePicker_SelectDateTimeFromCalendar(thisDate)
}
------解决方案--------------------
查查闭包问题
------解决方案--------------------
cell.onclick = (function(){ return function(){DateTimePicker_SelectDateTimeFromCalendar(thisDate)}; })();