Переменная jquery не определена - PullRequest
0 голосов
/ 11 сентября 2011

Я получаю неперехваченную referenceError всякий раз, когда функция 'countryDetail' вызывает переменную 'country', используя следующий код:

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();
}

Чего я не понимаю, так это того, что если я заменю «страну» на «счет», как в следующей строке:

feature.element.setAttribute("onmouseover", "countryDetail("+score+","+score+");");

все работает нормально. (Разумеется, за исключением того, что я не получаю нужные мне данные).

Переменная 'score' вызывается из файла json, загруженного в заголовок, тогда как переменная 'country' извлекается непосредственно из данных geoJSON, записанных на страницу.

Я почти уверен, что упустил что-то очень простое, но сейчас я полностью привязан к этому.

спасибо заранее! Nathan

1 Ответ

0 голосов
/ 11 сентября 2011

Попробуйте:

$(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;
...