JS自定义了一个对象,想把它传递给拼接的<A onclick=\"AddOrEdit(1,对象)\"...如何传和接收呢。
疑问:RowDiv 中的 objInfo 如何传递给AddOrEditDir?
//构造自定义的对象
function GetTable(iTag,iPID)
{
    var objInfo = new Object();
                    //IsDir,ID,PID,Name,Title,SavePath,Size,GETNOW
                    objInfo.IsDir = dt.Rows[i].IsDir;
                    objInfo.ID = dt.Rows[i].ID;
                    objInfo.PID = dt.Rows[i].PID;
                    objInfo.Name = dt.Rows[i].Name;
                    objInfo.Title = dt.Rows[i].Title;
                    objInfo.Path = escape(dt.Rows[i].SavePath);
}
//通过其他事件将对象传递给另一个函数   疑问:RowDiv 中的 objInfo 如何传递给AddOrEditDir?
function RowDiv(iIsPopedom,iIsShared,objInfo)

    alert(objInfo.PID);  //对象可用
    //传递不正确
    var strA = "[<a id=\"aEditInfo\" href=\"javascript:void(0);\" title=\"修改信息\" onclick=\"AddOrEditDir(1,"+eval(objInfo)+");\">修改信息</a>]";
    //操作........}
function AddOrEditDir(id,obj)
{
    //操作obj.....
}

解决方案 »

  1.   

    把var objInfo声明到函数的外面。
      

  2.   

    $(function(){
                  var user = {username:"arisu", password:"123456"};
                  var html = $("<input type='button' value='test!'/>");
                   $("#testDiv").append(html);
                  html.click(function(){
                         methodTest(user);
                  })
                   
              });
              
              function methodTest(user){
                  alert(user.username);
              }或者var t = new Object();
                t.t1 = "t1";
                t.t2 = "t2";
                t.t2.t1 = "t21";            $("#btn_test").live("click", function () {
                    alerttest(t);
                });
    这个是页面初始化方法里的绑定函数
    function alerttest(t) {
                alert(t.t1);
            }