簡體   English   中英

Javascript 函數被執行兩次

[英]Javascript functions being executed twice

我有下一個代碼,我試圖在屏幕上打印一些數據。 我面臨的問題是每個 function 都被執行了兩次,因此console.log也出現在我的控制台上兩次。

發生這種事情真的很奇怪。 我的代碼是這樣的:我嘗試使用window.onload執行此操作,還嘗試導入document.ready中的函數,但沒有運氣。

如果有人可以給我任何提示我做錯了什么,那將非常感激。

<body class="stretched">
    <div id="wrapper" class="clearfix">
        <!--Cargamos Layout de NavBar -->
        @Html.Partial("_NavBar_DataUser")
        <!--Fin de Carga -->
        <section id="carouselComercialTop" class="mt-auto">
            <div class="content-wrap">
                <!--Cargamos el caroussel stático -->
                @Html.Partial("_Layout_Caroussel")
            </div>

        </section>
        @Html.Partial("_Layout_Medicina360")

        <iframe class="pt-4" frameborder="0" width="100%" height="100%" src='#' name="zoom360" id="zoom360" style="display:none;"></iframe>
    </div>
    @Html.Partial("_Layout_DataUserFooter")
    <script type="text/javascript" src="//code.jquery.com/jquery-migrate-1.2.1.min.js"></script>
    <script type="text/javascript" src="/lib/slick-1.8.1/slick/slick.min.js"></script>
    <link rel="stylesheet" type="text/css" href="/lib/slick-1.8.1/slick/slick-theme.css" />
    <link rel="stylesheet" type="text/css" href="/lib/slick-1.8.1/slick/slick.css" />
</body>
    <script>
      window.ca_model = [];
      let stringJSONConsultaBuscador = ("@Context.Session.GetString("ConsultaBuscador")");
      window.ca_model = JSON.parse(stringJSONConsultaBuscador.replace(/&quot;/g, '"'));
      let especialistas = window.ca_model.listaEspecialistas;
      let especialista360varon = [];
      let especialista360mujer = [];
      let especialista360nino = [];
      let listaEspecialistas = window.ca_model.listaEspecialistas;
      let varon360 = listaEspecialistas.filter(b => b.hombres360 !== false);
      let mujer360 = listaEspecialistas.filter(b => b.mujeres360 !== false);
      let ninos360 = listaEspecialistas.filter(b => b.ninos360 !== false);

      especialista360varon.push(varon360);
      especialista360mujer.push(mujer360);
      especialista360nino.push(ninos360);

      especialista360varon = especialista360varon[0];
      especialista360mujer = especialista360mujer[0];
      especialista360nino = especialista360nino[0];

    function loadEspecialista360Varon(especialista360varon) {
        console.log(especialista360varon);
    }
    function loadEspecialista360Mujer(especialista360mujer) {
        console.log(especialista360mujer);
    }
    function loadEspecialista360Nino(especialista360nino) {
        console.log(especialista360nino);
    }

    window.onload = function () {
        loadEspecialista360Varon(especialista360varon);
        loadEspecialista360Mujer(especialista360mujer);
        loadEspecialista360Nino(especialista360nino);
    };
    $(document).ready(function () {
        let mobile = window.matchMedia('(max-width: 767px)').matches;
        let url = window.location.href;

        $('.link-carousel').each(function(){
            let href = $(this).attr("href");
            let container = $(this).parent().parent();
            if (url.indexOf(href) > -1){
                container.css({"background-color" : "rgb(173, 124, 177)"});
            }
        });

        let cuadroMedicoButton = document.getElementById("cuadroMedicoButton");
        cuadroMedicoButton.setAttribute("href", "/CuadroAsistencial/AsistenciaSpecialistas");
        if (mobile) {
            $('#mainRow').removeClass("d-flex");
            $('#mainCol').removeClass("d-flex");
            $('#containerMedicina360').replaceClass("py-5 py-2");
        }
    });
</script>

那么答案的解決方案是從這里刪除src='#'

    <iframe class="pt-4" frameborder="0" width="100%" height="100%" src='' name="zoom360" id="zoom360" style="display:none;"></iframe>

它在父 window 和同一個 iframe 上加載相同的頁面,這就是為什么它看起來像被調用兩次的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM