Usando javascript en línea, estoy tratando de desplazarme a una sección después de cargar una pestaña en particular.
setTimeout(function(){ $(".multimediaList a").click(function(event){ // loads tab $("li#abc").click(); // trigger scrolling to a section and open a popup var sectionId = event.target.getAttribute("data-sectionId"); var sectionImageId = event.target.getAttribute("data-sectionImageId"); setTimeout(function(){ TRLSC.SI.aJsClass.loadSection(sectionId, sectionImageId); },1000) }) })Aquí está la función de sección de carga definida en un archivo js. Estamos usando el marco angularjs
loadSection: function(b, a) { $("#DBsection_" + b).addClass("unloaded"); TRLSC.SI.aJsClass.showDiv(b, a); TRLSC.SI.aJsClass.showSection(b); $("#DBsection_" + b).removeClass("unloaded"); $("#DBsection_" + b).show() },Aquí está la función mostrar div
showDiv: function(b, a) { $("#DBtitle_" + b).parent().addClass("is-expanded"); $("#DBtitle_" + b).addClass("accordian-holder-titleDBopened"); $("#icon_" + b).addClass("accordian-holder-indicatorOpened"); $("#icon_" + b).removeClass("accordian-holder-indicator"); TRLSC.SI.aJsClass.dbLoadContent(b, a); TRLSC.SI.aJsClass.changeText() },el problema con este enfoque es que, a veces, dbLoadContent se activa antes de que se haya cargado la pestaña y no se desplaza a la sección; además, no hay ningún error en la consola.
¡Cómo asegurarse de que el evento de clic ocurra cuando la pestaña termine de cargarse!