我正在ASP.NET中构建一个解决方案,它将数据呈现到Leaflet Java映射平台的实例上。在初始加载时,过程创建并且SQL查询执行它并将结果传递给映射 - 这可以正常工作。
当我尝试使用下拉列表使其变为动态时,问题就开始了,这些下拉列表利用jQuery在它们发生变化时进行监听。这个想法是,当这种情况发生时,下拉的值被采用 - 插入到初始化时使用的相同查询中,并将结果输出到地图中 - 但它无法呈现。
以下是我在下拉列表中的代码:
$("#MainContent_DropDownList1").change(function () {
$.ajax({
url: "services/AJAXMapping.asmx/GetNewData",
dataType: "text",
type: "POST",
cache: false,
data: { species: $(this).val() },
error: function (err) {
alert("Error: " + err.responseText.toString())
},
success: function (data) {
$("#testarea").html(data);
geojson.clearLayers();
geojson = L.geoJson((test), {
style: choroStyle,
onEachFeature: onEachFeature
}).addTo(map);
}
});
});
});
Web Service只是调用初始化时使用的相同方法将其作为字符串返回。为了确保geoJSON回来是正确的,我让jQuery将返回的内容放到页面上的DIV中,如果我将其复制并粘贴到解决方案中的javascript文件中并渲染它,它就可以正常工作。
有没有人知道造成这种情况的原因 - 最后一步 - 相信我会在这里跌跌撞撞:\
非常感谢,
特里古丁
答案 0 :(得分:0)
只需使用.live或.delegate绑定更改事件!!
$(document).delegate("#MainContent_DropDownList1", "change", function (event) {
//your code
});