2017-08-23 62 views
0

我正在寫一些代碼.html()具有HTML map area(這是我的解決方法,以啓用/禁用地圖區域)JQuery的 - 在(「點擊」)不與地圖區域合作

我可以工作與任何現場活動(單擊圖像時一起使用),但它不適用於地圖區域。我找不到任何暗示,我研究和測試了幾種方法,但沒有結果。

我與HTML VAR:

var mapImage = '<map name="image-map"><area target="" href="#" alt="" title="" id="s" coords="55,109,130,220" shape="rect"><area target="" href="#" alt="" title="" id="b" coords="135,108,205,222" shape="rect"><area href="#" target="" alt="" title="" id="w" coords="213,109,296,223" shape="rect"><area href="#" target="" alt="" title="" id="n" coords="303,91,387,225" shape="rect"><area href="#" target="" alt="" title="" id="r" coords="58,223,131,323" shape="rect"><area href="#" target="" alt="" title="" id="l" coords="133,224,210,322" shape="rect"><area href="#" target="" alt="" title="" id="t" coords="215,225,293,324" shape="rect"><area href="#" target="" alt="" title="" id="g" coords="303,229,387,324" shape="rect"><area href="#" target="" alt="" title="" id="p" coords="540,96,686,217" shape="rect"><area href="#" target="" alt="" title="" id="b" coords="515,229,583,320" shape="rect"><area href="#" target="" alt="" title="" id="k" coords="594,225,679,322" shape="rect"><area href="#" target="" alt="" title="" id="x" coords="7,350,4,298,50,304,52,326,392,327,391,301,508,300,509,323,685,325,684,299,735,299,757,291,756,354" shape="poly"></map>'; 
      var mainImage = '<img id="panel" src="imgs/main1.png" width="760" height="360" class="img-responsive img-thumbnail" alt="Responsive image" usemap="#image-map">'; 

我對事件的最後一次嘗試(去的基本知識與警報這裏):

$("#b").on('click', function (e) { 
     e.preventDefault(); 
     alert('test'); 
    }); 

沒有用處,但是這是我使用的代碼寫出html的第一個參數:

$("#panel").on('click', function() { 
      switch (panel) { 
       case 0: 
        $("#maindiv").html(mainImage + mapImage).promise().done(function() { 
         $('#panel').attr("src", "imgs/day_off.png"); 
         panel = 1; 
        });; 

        break; 
      } 
     }); 

當然dom內的所有東西(在文檔上準備就緒)。

我的錯誤在哪裏?任何提示或評論或答案將被優先。測試最新的Mozilla和最新的Chrome。它可以工作,如果我不寫din的dinamically。

回答

0

在頁面加載時爲不存在的元素設置點擊式綁定將不起作用。它不會實際註冊任何東西,因爲該元素不存在!

您將需要在頁面加載時存在的元素上註冊事件處理程序,以及誰是動態創建的元素上的父元素。

看到這個答案的格式/如何:https://stackoverflow.com/a/1207393/5173105

如果#panel存在於頁面加載幷包含#b的元素,那麼建議的解決方案:

$("#panel").on('click', '#b', function (e) { 
    e.preventDefault(); 
    alert('test'); 
});