я пытаюсь передать два параметра в функцию, "i" - это значение типа int, а "map" - это объект. Я использую eval, чтобы сообщить Javascript, что я передаю объекты, однако я получаю сообщение об ошибке «отсутствует] после списка элементов».
Я немного новичок в этом, поэтому я не уверен на 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;
}