0
我正在使用JQVMap插件(http://jqvmap.com/)創建地圖。該插件有一個名爲onRegionClick的方法,如果選擇了地圖上的某個區域,則可以調用該函數。jqvmap - regionclick方法不會觸發,除非在瀏覽器控制檯中調用
我使用一個名爲loadSlide的函數動態加載地圖,但由於某種原因onRegionClick方法沒有被調用,也沒有我之後調用的綁定方法。奇怪的是,如果我在加載頁面後將該綁定方法加載到我的瀏覽器控制檯中,它的效果很好。
如果有必要,我非常樂意提供更多的代碼/上下文,但我在這個機智的結尾。任何熟悉這個插件的人都會遇到這個問題?謝謝!
相關的代碼如下:
function loadSlide(url,data) {
data.slide_id = $('#slide-data input#slide_id').val();
$.getJSON(url, data, function(response) {
$('#slide-content').replaceWith(response.html);
if ($("#vmap").length > 0) {
$('#vmap').vectorMap({
map: 'usa_en',
backgroundColor: null,
color: '#6a1912',
hoverColor: '#fdb33f',
selectedColor: '#fdb33f',
enableZoom: true,
showTooltip: true,
onRegionClick: function(event, code, region) {
event.preventDefault();
$('input[type=hidden]#state-click').val(code.toUpperCase());
console.log($('input[type=hidden]#state-click').val());
}
});
$('#vmap').bind('regionClick.jqvmap', function(event, code, region) {
$('input[type=hidden]#state-click').val(code.toUpperCase());
console.log($('input[type=hidden]#state-click').val());
});
setClickHandlers();
}
});
}
這可能是一個非常天真的聲明,但我不知道console.log可能會影響功能是否觸發。 – 2012-09-27 03:11:02
是的 - 控制檯對象沒有在IE> 8或FF中定義,除非Firebug處於打開狀態。在Chrome中,它始終是定義的。 處理它的一種方法是定義它,如果它沒有定義:if(!window.console)console = {log:function(){}}; – hardba11 2012-09-27 06:01:08