jquery变量未定义

时间:2011-09-11 16:37:58

标签: jquery variables jsonp

每当'countryDetail'函数使用以下代码调用'country'变量时,我就会得到一个未被捕获的referenceError:

function load_countries(e) {
var count = e.features.length;      
if (!count) {return;}   
for (var i = 0; i < count; i++) {
    var feature = e.features[i];
    // get the country name & rank
    country = feature.data.properties.NAME
    score = rsfpfi2010[country]

    feature.element.setAttribute("onmouseover", "countryDetail("+country+","+score+");");
        feature.element.setAttribute("onmouseout", "hideCountryDetail();");
    feature.element.onmousemove = detailFollow;
}
}

// Tooltip content & display
function countryDetail(c,s) {
//console.log(c,s);
if (score == undefined) {
    $("#tooltip").html("<h3>"+ c +"</h3><br/>Data Unavailable");
} else {
    $("#tooltip").html("<h3>"+ c +"</h3><br/>Score: " + s);
}
$("#tooltip").show();
}

我不明白的是,如果我将'country'替换为'score',如下所示:

feature.element.setAttribute("onmouseover", "countryDetail("+score+","+score+");");
一切都运行良好。 (当然,除了我没有得到我需要的数据)。

'score'变量是从标题中加载的json文件调用的,而'country'变量是直接从写入页面的geoJSON数据中提取的。

我几乎是肯定的,我已经错过了一些简单的东西,但到现在为止,我已完全接受了它。

提前谢谢! 森

1 个答案:

答案 0 :(得分:0)

试一试:

$(feature.element).hover(function () {
    countryDetail(country, score);
}, function () {
    hideCountryDetail();
}).move(detailFollow);

而不是

feature.element.setAttribute("onmouseover", "countryDetail("+country+","+score+");");
    feature.element.setAttribute("onmouseout", "hideCountryDetail();");
feature.element.onmousemove = detailFollow;