我试图通过此数组迭代到地图上的引脚,在每个浏览器中似乎都可以正常工作,但是在IE8中,我收到错误消息“ SCRIPT5007:无法获取属性'top'的值:对象为null或未定义”如果我将顶部更改为其他名称或将其删除,则IE只会说左或名称等内容。如果有人有任何建议,将不胜感激。
jQuery(document).ready(function(){
var pins = [
{ "name":"Mexico", "top":"154" , "left":"176", "imageFile":"Mexico.jpg", "soundMP3File":"Mexico_GMartinez_1.mp3", "soundOGGFile":"Mexico_GMartinez_1.ogg"},
{ "name":"Chile", "top":"261" , "left":"246", "imageFile":"Chile.jpg", "soundMP3File":"Chile_MVelasquez_1.mp3", "soundOGGFile":"Chile_MVelasquez_1.ogg"},
{ "name":"Trinidad and Tobago", "top":"182" , "left":"242", "imageFile":"TrinidadTobago.jpg", "soundMP3File":"Trinidad-Tobago_SHarris_1.mp3", "soundOGGFile":"Trinidad-Tobago_SHarris_1.ogg"},
{ "name":"Columbia", "top":"209" , "left":"227", "imageFile":"Columbia.jpg", "soundMP3File":"Colombia_JGordon_2.mp3", "soundOGGFile":"Colombia_JGordon_2.ogg"},
{ "name":"Canada", "top":"86" , "left":"208", "imageFile":"Canada.jpg", "soundMP3File":"Canada_KBretzer_1.mp3", "soundOGGFile":"Canada_KBretzer_1.ogg"},
];
for(var i = 0; i < pins.length; i++)
{
jQuery('#map #pins-container').append('<a href="#" class="pin" style="top: ' + pins[i].top + 'px; left:' + pins[i].left + 'px;" pinindex="' + i + '" name="' + pins[i].name + '"></a>');
}
});
最佳答案
@古法是正确的。 “加拿大”行上的尾部逗号无效。
IE是唯一会真正抱怨它的浏览器,但是从技术上讲,它在所有地方都是无效的。
为了避免出现此类问题,您应使用JSHint之类的工具,该工具将验证您的Javascript代码以编码常见错误,包括结尾的逗号错误。