为什么jquery改变方法不能很好用?

时间:2017-03-10 22:17:27

标签: jquery django

我有两个复选框的问题,问题是我有两个类别 文塔和伦塔

因此,如果我检查Venta或Renta或两者都可以正常工作,但是如果我取消选中例如Renta,方法无法正常工作,那么我取消选中这两个类别并且代码工作正常,但我没有&# 39;了解为什么或我的问题在哪里

这是我的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;
        }

2 个答案:

答案 0 :(得分:0)

如果我理解正确,您会尝试根据选中的复选框在地图上显示某些标记。无论何时选中一个方框,它都会调用Visualizar_Unidades,它会添加标记。 根据我的看法,调用Eliminar_Unidades只会重置整个地图。尝试调用Visualizar_Unidades,或者在Eliminar_Unidades中调用它,如下所示:

function Eliminar_Unidades()
{
    map.removeMarkers();
    markers_dataV.length = 0;
    Visualizar_Unidades(0,0,0);
}

答案 1 :(得分:0)

解决方案似乎只删除了必要的标记,而不是一次性删除所有标记:

function Eliminar_Unidades(objeto)//exemple '.venta_unitys'
        {
            map.removeMarkers(objeto);//remove all objects with some class
            markers_dataV.length = 0;
        }