jQuery オブジェクトを 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();
圧縮前に機能するようになりました。後は変更によるものではありません。それがいくらか解消されることを願っています