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

动态链接中的JavaScript函数参数传递问题

最近做项目过程中遇到一小问题,查询相关资料后已经解决

问题是:

function lowestPriceInfo1(data){ 
		jQuery("#tabcity_1").html("");
		var s='<ul>';
		var orgCity;
		var destCity;
		var orgTime;
		for(var i = 0 ; i< data.length;i++) 
		{   
			orgCity=data[i].orgCity;
			destCity=data[i].dstCity;
			orgTime=data[i].orgTime;
		
			s+='<li class="cityInfo" style="cursor: pointer;" onclick=lowestPriceInfo("'+orgCity+'","'+destCity+'","'+orgTime+'")>'+data[i].orgCity+' '+data[i].dstCity+' '+data[i].orgTime+' '+data[i].price+' '+data[i].discount+'</li>';
		}
		s+='</ul>';
		jQuery("#tabcity_1").html(s);
	}

?<li>的onclick事件调用了另一个JS的函数lowestPriceInfo(),其定义如下

function lowestPriceInfo(orgCity,destCity,orgTime)
{
   ............略
}

?几次测试,发现<li>中的3个已经定义好的参数无法传递进去,后发现必须写成onclick=lowestPriceInfo("'+orgCity+'","'+destCity+'","'+orgTime+'")形式才可以,直接写成lowestPriceInfo(orgCity,destCity,orgTime)不好使。当然要注意的是:这里的<li>标签是动态生成的~~~若不是动态生成,直接按照后一种写法即可。