Javascript html按钮不改变颜色
我正在使用liflet API。 我在地图上创建标记。 当按下标记时,会弹出一个大写字母。 在弹出窗口中有两个按钮。 我想做的是让按钮在按下时改变颜色。 问题是,当我试图重置颜色时,弹出窗口被打开为原来的一个 只有当我第二次打开弹出窗口时才会发生这种影响。 我检查了弹出事件和点击事件的工作。 按钮创建代码:Javascript html按钮不改变颜色,javascript,jquery,html,leaflet,Javascript,Jquery,Html,Leaflet,我正在使用liflet API。 我在地图上创建标记。 当按下标记时,会弹出一个大写字母。 在弹出窗口中有两个按钮。 我想做的是让按钮在按下时改变颜色。 问题是,当我试图重置颜色时,弹出窗口被打开为原来的一个 只有当我第二次打开弹出窗口时才会发生这种影响。 我检查了弹出事件和点击事件的工作。 按钮创建代码: if(!marker.getPopup()){ var tooltipContent = $('<div />'); $.each(marker.
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();
}
如果您能提供帮助,我将不胜感激。最后,问题的根本原因是种族问题。 我试图更新的按钮元素创建速度不够快,因此 颜色的变化没有起作用。 我的解决方案是在每次弹出窗口打开时创建按钮。
通过这种方式,我可以绕过这个问题。jsfiddle或它没有发生。我不能在这里发布整个代码,因为它依赖于外部事件。我说的是jsfiddle.net,如果您使用库,您可以始终在左侧菜单中添加外部链接,最后在这里保存和共享您的工作,这样我们就可以轻松地看到它的工作。
function resetButtonPress(marker){
$.each(marker._myId, function(index,router){
var button=$("#router-"+router.properties.name);
button.css("background-color","RGB(221,221,221)");
});
}