2012-07-10 39 views
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(); 
     } 
    }); 
} 

回答

1

我知道這是一個老問題,但我敢打賭,這個問題是CONSOLE.LOG線?

+0

這可能是一個非常天真的聲明,但我不知道console.log可能會影響功能是否觸發。 – 2012-09-27 03:11:02

+0

是的 - 控制檯對象沒有在IE> 8或FF中定義,除非Firebug處於打開狀態。在Chrome中,它始終是定義的。 處理它的一種方法是定義它,如果它沒有定義:if(!window.console)console = {log:function(){}}; – hardba11 2012-09-27 06:01:08

相關問題