2014-10-01 2 views
-1

Я работаю с API-интерфейсом liflet. Я создаю маркеры на карте. , когда маркер нажат всплывающее окно. во всплывающем окне есть две кнопки. Я пытаюсь сделать, чтобы кнопки меняли цвет при нажатии. проблема заключается в том, что когда я пытаюсь сбросить цвет, когда всплывающее окно открывается на исходное значение , эффект происходит только тогда, когда я открываю всплывающее окно во второй раз. Я проверил всплывающее событие и работу события клика. код кнопки создания: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

+0

Я не могу опубликовать весь код здесь из-за его зависимости от внешних событий. – raven

+0

Я говорю о jsfiddle.net, чтобы сделать скрипку, если вы используете библиотеки, вы всегда можете добавить внешние ссылки в меню слева и, наконец, сохранить и поделиться своей работой здесь, чтобы мы могли легко ее увидеть. – Frondor

ответ

1

В конце концов, основной причиной проблемы было состояние гонки. Элемент кнопки, который я пытался обновить, не был создан достаточно быстро, и в результате изменение цвета не повлияло. Мое решение состояло в том, чтобы создавать кнопки в всплывающем окне каждый раз, когда он открывается. таким образом я могу обойти проблему.

Смежные вопросы