首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么jquery更改方法不能很好地工作?

为什么jquery更改方法不能很好地工作?
EN

Stack Overflow用户
提问于 2017-03-11 06:17:27
回答 2查看 27关注 0票数 0

我有两个复选框的问题,问题是我有两个类别Venta和Renta

因此,如果我选中Venta和/或Renta,方法工作正常,但如果我取消选中,例如Renta,方法不能正常工作,所以我取消选中这两个类别,代码工作正常,但我不明白为什么或哪里出了问题

这是我的jquery代码:

代码语言:javascript
运行
复制
            $(".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:

代码语言:javascript
运行
复制
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:

代码语言:javascript
运行
复制
  function Eliminar_Unidades()
        {
            map.removeMarkers();
            markers_dataV.length = 0;
        }
EN

回答 2

Stack Overflow用户

发布于 2017-03-11 06:35:07

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

代码语言:javascript
运行
复制
function Eliminar_Unidades()
{
    map.removeMarkers();
    markers_dataV.length = 0;
    Visualizar_Unidades(0,0,0);
}
票数 0
EN

Stack Overflow用户

发布于 2017-03-11 07:07:21

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

代码语言:javascript
运行
复制
function Eliminar_Unidades(objeto)//exemple '.venta_unitys'
        {
            map.removeMarkers(objeto);//remove all objects with some class
            markers_dataV.length = 0;
        }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42728649

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档