2014-10-01 158 views
-1

我正在使用liflet API。 我在地圖上創建標記。 當一個標記被按下時彈出鞋幫。在彈出的 中有兩個按鈕。 我想要做的是讓按鈕在按下時改變顏色。 問題是,當我嘗試重置顏色時彈出被打開到原來的 只有當我第二次打開彈出窗口才會發生這種情況。 我檢查了彈出事件和點擊事件工作。 按鈕創建代碼:html按鈕不會改變顏色

if(!marker.getPopup()){ 
     var tooltipContent = $('<div />'); 
     $.each(marker._myId, function(index,value){ 
      var current = $("<button id=\"router-"+value.properties.name+"\" type=\"button\" style=\"width:100%;color:black\" class='tooltipName' >"+value.properties.name+"</button>") 
       .click(function(){ 
        handleClickOnSwitch(value); 
        var button=$("#router-"+value.properties.name); 
        button.css("background-color","grey"); 

       }); 
      tooltipContent=tooltipContent.append(current); 
     }); 
     marker.bindPopup(tooltipContent[0],{'closeButton' : false,}).openPopup(); 
    } 

上點擊我改變按鈕科勒灰色。 各彈出式打開時我打電話:

function resetButtonPress(marker){ 
    $.each(marker._myId, function(index,router){ 
     var button=$("#router-"+router.properties.name); 
     button.css("background-color","RGB(221,221,221)"); 
    }); 
} 

我希望得到任何幫助。

+0

jsfiddle或它沒有發生。 – Frondor 2014-10-01 11:42:03

+0

我不能在這裏發佈整個代碼,因爲它依賴於外部事件。 – raven 2014-10-01 11:43:29

+0

我在說jsfiddle.net做一個小提琴,如果你正在使用庫,你總是可以在左邊菜單中添加外部鏈接,最後在這裏保存並分享你的工作,這樣我們就可以很容易地看到它的工作。 – Frondor 2014-10-01 11:44:53

回答

1

最終問題的根本原因是競爭條件。 我試圖更新的按鈕元素創建速度不夠快,結果 顏色更改沒有生效。 我的解決方案是每次打開時在彈出窗口中創建按鈕。 這樣我可以繞過這個問題。