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

层数据设置修改问题

function   createLayer()
{
  //动态的创建一个层
  var       str=document.createElement( "div ");       //创建的元素
                  ..............
  str.onclick   =   ClickLayer;

  function   ClickLayer()
  {
  ....
  ....
  var   StartId   =   ClickLayer.StartId;

  }

  ClickLayer.StartId   =   CurrTdId;
ClickLayer.EndId   =   EndId;

}

我利用这个函数创建层,我想问一下这个层对应的   ClickLayer.StartId用代码可以重新赋值吗?如何赋值?


------解决方案--------------------
ClickLayer.StartId 这个 StartId 只是函数数 ClickLayer 的一个静态属性,是可读写的
不过你的函数ClickLayer已经包含在另一个函数 cteateLayer 里了,所以不可以直接赋值了,所以要在 createLayer 函数里作一个与外沟通的接口:

<SCRIPT LANGUAGE= "JavaScript ">
<!--
function createLayer()
{
//动态的创建一个层

function ClickLayer()
{
//....
//....
var StartId = ClickLayer.StartId;

}

ClickLayer.StartId = "132 "//CurrTdId;
ClickLayer.EndId = "465 "//EndId;
window.getClickLayer = function(){return ClickLayer}
}

createLayer();

var CL = getClickLayer();
alert(CL.StartId);

CL.StartId = "789 "
alert(CL.StartId);

//-->
</SCRIPT>