можно ли использовать jquery-ui-timepicker в информационном окне карт google

во-первых, я новичок в java-скрипте, а также в jquery. У меня есть задача, которую нужно выполнить, т.е. на картах Google, когда мы нажимаем на определенную область (многоугольник, круг), необходимо открыть информационное окно с некоторыми стилями. Поэтому я перешел в информационное окно и добавил немного css (jquery custom css ui lightness). В этом информационном окне мне нужно показать календарь со временем. Поэтому я сделал много RD и написал код

я написал код, используя инструменты рисования, информационный блок, jquery custom css, jquery-ui-timepicker

Теперь моя проблема заключается в том, что jquery-ui-timepicker не поднимается в информационном поле. если я использую его в обычном div, он работает нормально.

вот часть моего кода:

<link rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/themes/smoothness/jquery-ui.css" type="text/css" media="all" />
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.1/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.23/jquery-ui.min.js"></script>
<script type="text/javascript" src="Scripts/jquery-ui-timepicker-addon.js"></script>

  <script type="text/javascript">
    $(document).ready(function () {
        $('.datetimepicker').datetimepicker({});
    });
</script>

 var contentString =
                 '<table width="100%"' +
                 '<tr>' + '<td width="18%">From Date:</input></td>' + '<td> <input class="datetimepicker" id="start_time" name="start_time" type="text" /></td>' + '<td width="18%" align="center">To Date:</input></td>' + '<td><input class="datetimepicker" id="end_time" name="end_time" type="text" /></td>' + '</tr>' +
                 '</table>'

 function RaiseInfoWindow() {
        google.maps.event.addListener(drawingModesType, 'click', function (event) {
            if (infoBox)
                infoBox.close();
            var bounds = new google.maps.LatLngBounds();
            message = GetMessage(drawingModesType);
            InfoBoxType(InfoBox, message);
            infoBox.setOptions({ content: message });
            infoBox.setPosition(bounds.getCenter());
            infoBox.open(map);
            google.maps.event.addListener(infoBox, 'domready', function () {
                jQuery("#tabs").tabs();
            });
        });
function GetMessage(polygon) {
        coordinates = polygon.getPath().getArray();
        message = ['<div id="tabs">', '<ul>', '<li><a href="#tab-1" ><span>Modify</span></a></li>', '<li><a href="#tab-2"><span>Save</span></a></li>', '</ul>',
           '<div id="tab-1">', '<li><div style="color:#000" class="divText" >Approximately area is ' + GetAreaInAcres(polygon) + ' kms</div></li>', '<div class="divbuttonText"><p><input type="button" value="Edit" title="Edit" class="buttonStyle" onclick="ShapeEditable(true);" />' + "     " + '<input type="button" value="Done" title="Done" class="buttonStyle" onclick="ShapeEditable(false);" />' + "     " + '<input type="button" value="Delete" title="Delete" class="buttonStyle" onclick="DeleteShape(drawingModesType);" /></p></div>', '</div>',
           '<div id="tab-2">', '<p>' + contentString + '</p>', '</div>', '</div>'].join('');
        return message;
    }

Обновить

JsFiddle Вот мой Jsfiddle с моим полным кодом (не думайте, что я разозлился. Я пытался добавьте URL-адрес скрипта, но он не работает. Я видел так много jsfiddles (которые приведены в примерах с надстройкой jquery-ui-timepicker .js, там также такая же проблема), поэтому я добавил script.мой код начинается с строки 2199. Пожалуйста, не обращайте внимания на перед строками)

Обновление 2:

вот моя обновленная скрипка после применения средства выбора времени предложения @gaurrav поднимается, но оно поднимается после от 2 до 3 кликов


person user595    schedule 08.05.2014    source источник
comment
я вижу, что таймпикер работает с полем ввода, не могли бы вы указать мне на информационное окно, я не могу найти его на карте   -  person Dave    schedule 09.05.2014
comment
@Dave, да, он работает с полем ввода. но он не работает внутри информационного окна. и что ты имеешь в виду, не могу найти его на карте   -  person user595    schedule 09.05.2014
comment
обычно на карте есть маркер, при щелчке маркера всплывает информационное окно.. так что здесь нет маркера, где инфобокс, укажите мне на него   -  person Dave    schedule 09.05.2014
comment
@ Дэйв, я не использую никаких маркеров ... использую инструменты рисования, поэтому вы просто рисуете многоугольник и щелкаете внутри него. Информационное окно будет поднято на второй вкладке, вы можете найти поля ввода. здесь я столкнулся с проблемой   -  person user595    schedule 09.05.2014
comment
так что ваша проблема в том, что информационный блок не отображается в основном?   -  person Dave    schedule 09.05.2014
comment
Информационное окно @Dave будет отображаться, просто следуйте приведенным выше шагам.   -  person user595    schedule 09.05.2014


Ответы (1)


InfoBox создается динамически при загрузке карты, поэтому '$(".datetimepicker")' не сможет найти ваш div. Попробуйте использовать '$("body").find(".datetimepicker")'.

person Gaurav Gupta    schedule 09.05.2014
comment
@ gaurraw5 спасибо за ваш ответ. Я добавил find (.datetimepicker) в свой код, но без изменений. - person user595; 09.05.2014
comment
есть ли какой-либо маркер, на который вы устанавливаете свой информационный ящик или информационное окно? - person Gaurav Gupta; 09.05.2014
comment
просто сделайте это $(body).on(click,.datetimepicker, function(){ $(this).datetimepicker({}); }); - person Gaurav Gupta; 09.05.2014
comment
@gaurraw работает($(body).on(click,.datetimepicker,function(){ $(this).datetimepicker({}); });), но есть небольшая проблема, которая возникает после 2-3 кликов. - person user595; 09.05.2014