我有一个可拖动的标记,并希望在移动标记时使用新的LatLng更新表单输入。
首次加载时,Popup html包含
<input type="text" id="newLatLng" name="newLatLng" value="">
拖动事件是
marker.on('dragend', function(e) {
console.log('dragend');
newLatLng = marker.getLatLng().lat + ' ' + marker.getLatLng().lng;
console.log(newLatLng);
$('#newLatLng').val(newLatLng);
});
控制台日志显示正在提取拖动事件和正确的值,但未设置输入值。
欢迎任何指示 - 我不禁觉得我错过了一些明显的东西!
答案 0 :(得分:1)
在重新创建弹出窗口之前执行您的代码。要检查这个想法,您可以将当前$('input[name="newLatLng"]').val(newLatLng);
与setTimeout
包裹在一起,延迟约5秒,然后检查结果。完整代码:
setTimeout
(
function()
{
$('input[name="newLatLng"]').val(newLatLng);
},
5000
);
即使此代码仅用于测试,您也可以通过设置超时一小段时间,检查input
是否存在以及是否存更多。像这样:
(function check()
{
if ($('input[name="newLatLng"]').length)
{
$('input[name="newLatLng"]').val(newLatLng);
... other related logic
}
else
{
setTimeout(check, 200);
}
})();