我有两个复选框的问题,问题是我有两个类别Venta和Renta
因此,如果我选中Venta和/或Renta,方法工作正常,但如果我取消选中,例如Renta,方法不能正常工作,所以我取消选中这两个类别,代码工作正常,但我不明白为什么或哪里出了问题
这是我的jquery代码:
$(".venta").change(function () {
if (this.checked) {
$(this).val('1');
Visualizar_Unidades(0,0,0);
}
else{
$(this).val('0');
Eliminar_Unidades();
}
});
$(".renta").change(function () {
if (this.checked) {
$(this).val('1');
Visualizar_Unidades(0,0,0);
}
else{
$(this).val('0');
Eliminar_Unidades();
}
});
函数Visualizar_Unidades:
function Visualizar_Unidades(dueño, m2, nueva)
{
var bandera=0;
var venta=$(".venta").val();
var renta=$(".renta").val();
if(parseFloat(venta)==1 && parseFloat(renta)==1 )
{
bandera=0;
alert(venta+renta);
}
else
{
if(parseFloat(venta)==1 && parseFloat(renta)==0 )
{
bandera=2;
}
else
{
if(parseFloat(venta)==0 && parseFloat(renta)==1 )
{
bandera=1;
}
}
}
var extra=$(".inmueble").val();
var min = $('#header_min').val().replace(/,/g, "");
var max = $('#header_max').val().replace(/,/g, "");
if (min == ""){
min = 0;
}
if (max ==""){
max=0;
}
if (extra==""){
extra=0;
}
$.get(/JSON/+bandera+"&"+min+"&"+max+"&"+0, function (data) {
$.each(data, function (i, item) {
if (item.tipo_venta==1){
icono = "{% static 'FrontEnd/images/punto_azul_sombreado.png' %}";
}
if (item.tipo_venta==2){
icono = "{% static 'FrontEnd/images/punto_rojo.png' %}";
}
markers_dataV.push({
lat: item.latitud,
lng: item.longitud,
draggable: true,
icon: icono,
click: function (e) {
map.setZoom(15);
map.setCenter(item.latitud, item.longitud);
var id = item.id_unidad;
var tipo = item.id_tipo_unidad.tipo_vista
//llama a la funcion para llenar con informacion el modal
InfoModal(id, tipo);
//verificar qie tipo de modal abrira
var modal_mostrar = '';
if (parseFloat(tipo) == 1 )
{
modal_mostrar = 'Modal';
}
else
{
modal_mostrar = 'Modal_casas';
}
$("#" + modal_mostrar).modal();
}
});
});
map.addMarkers(markers_dataV);
});
}
这是函数Eliminar_Unidades:
function Eliminar_Unidades()
{
map.removeMarkers();
markers_dataV.length = 0;
}
发布于 2017-03-11 06:35:07
如果我理解正确的话,您正在尝试根据选中的复选框在地图上显示某些标记。每当您选中一个框时,它都会调用添加标记的Visualizar_Unidades。根据我所看到的,调用Eliminar_Unidades只会重置您的整个地图。尝试调用Visualizar_Unidades,或者在Eliminar_Unidades内部调用它,如下所示:
function Eliminar_Unidades()
{
map.removeMarkers();
markers_dataV.length = 0;
Visualizar_Unidades(0,0,0);
}
发布于 2017-03-11 07:07:21
解决方案似乎是只删除必要的标记,而不是一次性删除所有标记:
function Eliminar_Unidades(objeto)//exemple '.venta_unitys'
{
map.removeMarkers(objeto);//remove all objects with some class
markers_dataV.length = 0;
}
https://stackoverflow.com/questions/42728649
复制相似问题