誰でも私を助けることができますか?- >
jQuery.each が定義された後、関数内の vars id,zIndex,width が定義され、それらの値が関数 MyFunction に渡される配列からの値になることはありません。
console.log(id); //ID IS NOT DEFINED
console.log(zIndex); //NOT DEFINED
console.log(width); //NOT DEFINED
助けてくれてどうもありがとう、ピーター
コード>
var MyArray = new Object();
MyArray.id = "3";
MyArray.zIndex = "3";
MyArray.width = "600";
function MyFunction(my_array) {
console.log(my_array.id); //IT IS OK, id is defined
jQuery.each(my_array, function(key,value) {
alert(key + " = " + value);
eval("var" + key + " = " + value); //???????
});
console.log(id); //ID IS NOT DEFINED
console.log(zIndex); //NOT DEFINED
console.log(width); //NOT DEFINED
}
MyFunction(MyArray);
- - -更新しました - - - - - - - - - - -
コードを更新するまでの間、ご回答いただきありがとうございます。アプリケーション
メソッド OPENWINDOWは公開されているため、小さなプラグインを作成するつもりはありません。
私の質問は、メソッドをどのように使用できるかです
jQuery.each(my_array, function(key,value) {
window[key]=value;
});
IN PLUGIN PUBLIC METHOD OPENWINDOW
より複雑なコードは次のとおりです。
(function($){
$.fn.MyPlugin = function(options) {
...... CODE
this.OpenWindow = function(my_array) {
//this way dont work for me here, vars are not defined
var window = $(window);
jQuery.each(my_array, function(key,value) {
window[key]=value;
});
//VARS ARE NOT DEFINED
console.log(id);
console.log(zIndex);
console.log(width);
//this way work well
for (var k in my_array){
eval ("var " + k + " = " + my_array[k]);
}
//VARS ARE DEFINED
console.log(id);
console.log(zIndex);
console.log(width);
.... code
return this;
};
})(jQuery);
var MyArray = new Object();
MyArray.id = "3";
MyArray.zIndex = "3";
MyArray.width = "600";
var MyPlugin = $.fn.MyPlugin();
MyPlugin.OpenWindow(MyArray);