我需要将 jQuery 对象传递给 eval 的解决方法。问题是我需要访问一个位于 eval 区域之外的 jQuery 对象,但我看不到将其传递进来。这就是我所拥有的。
var jObj = $(selector);
var myCode = "var jObj="+jObj+"; var i="+i+"; "+shape.mouseover.onEnd.replace("\u0027","'");
var myFucn = new Function(myCode);
myFucn();
我要从中取出字符串的对象是
shape.mouseover.onEnd.replace("\u0027","'");
正在工作,我在该字符串中传递的是
open_info(jObj,i)
这是我必须开火的。交易是代码是通过 YUI 压缩器运行的,所以 jObj var 变成了别的东西,所以我需要把它传递进去。现在我在它认为应该有的地方遇到一个错误,并且结束 ] 这是不正确的。我似乎在工作,而不是 jObj var。
编辑
有很多方法可以到达我需要去的地方,但并不像 如何以对象形式在 eval 中传递参数?
shape.mouseover.onEnd = "open_info(jObj,i)";
/*
* this is coming in and must be as it is, don't say it's wrong please
* it's not able to be done anyother way!
*/
//lets process the string and pull in the vars
/* BEOFRE YUI COMPRESSOR CHANGES THINGS and works!!!
var jObj = $(selector);
var i = 1;
var myCode = shape.style.events.mouseover.onEnd.replace("\u0027","'");
var myFucn = new Function(myCode);
myFucn();
*/
// AFTER note it can be random as i change code so it fails cause
// var jObj is now var r and var i is now var e
var r = $(selector);
var e = 1;
var p= shape.style.events.mouseover.onEnd.replace("\u0027","'");
var f= new Function(p);
f();
现在它在压缩之前工作..之后不是由于更改。希望能解决一些问题