1
即時嘗試將兩個參數傳遞給函數,」i「是一個int值,」map「是一個對象。我使用eval來通知Javascript,我正在傳遞對象,但是在元素列表後面出現錯誤「缺失」。「missing」after element list「with eval
我對此很有點新意,所以我並不是100%確定這是否是正確的做事方式......但是雅..希望我在正確的軌道上。
...
optionsControlDiv.innerHTML += '<input type="checkbox" onclick="toggleLayer('+eval(i)+","+eval(map)+')"'+c+' />'+this.opts[i]+'<br>';
console.log('<input type="checkbox" onclick="toggleLayer('+eval(i)+","+eval(map)+')"'+c+' />'+this.opts[i]+'<br>');
// OUTPUT:
// <input type="checkbox" onclick="toggleLayer(0,[object Object])" />Wiki<br>
// <input type="checkbox" onclick="toggleLayer(1,[object Object])" />webcams<br>
// <input type="checkbox" onclick="toggleLayer(2,[object Object])" />Photos<br>
// ERROR:
// missing ] after element list
// [Break on this error] toggleLayer(0,[object Object])
...
// The function
function toggleLayer(i,map) {
//console.log(i);
if (layers[i].Visible) {
layers[i].hide();
} else {
if(layers[i].Added) {
layers[i].show();
} else {
map.addOverlay(layers[i]);
layers[i].Added = true;
}
}
layers[i].Visible = !layers[i].Visible;
}
爲什麼你需要評估'我'和'地圖',他們是什麼值? – Gumbo 2010-03-14 21:37:48
不使用eval,也不會使用DOM-0事件處理程序的字符串表示形式,您可以免除大家的相當一部分調試工作。 – 2010-03-14 21:40:03
好吧......那麼在字符串中傳遞參數的最好方法是什麼呢? 或者我應該去尋找另一種方式來做到這一點? – cdnicoll 2010-03-14 21:42:02