Seleccione un elemento de anclaje particular a través de location.hash
Pregunta
Estoy intentando seleccionar una sección de pestaña particular de una página web, al hacer clic en un enlace en otra página. Se me sugirió usar la función location.hash para seleccionar ese elemento de anclaje en particular de la pestaña y agregar la propiedad hash en el atributo href de la primera página web.
Pero el código no funciona para mí. Obtengo la página completa, en lugar de la pestaña particular seleccionada. ¿Alguien me puede ayudar?
Aquí está el código. Este es el enlace en la primera página web. Quiero que se seleccione la pestaña Enviado de la segunda página web. Así que agregué la identificación de esa pestaña, #enviado a la URL.
<a id="formStatus<?php echo $status;?>" class="code_link" href="/FormBuilder/main/viewAllMyForms#submitted"><?php echo $status;?></a>
Este es el código de la segunda página, donde verifico si location.hash es igual a enviado.
if(location.hash=="submitted") {
$("#submitted").trigger("click");
}
$('#submitted , #formStatusSubmitted').click({
<?php foreach($myForms as $form):
if($form['Form']['status']=="Incompleted"){ ?>
$('.fm_myformsample_container'+<?php echo $form['Form']['id'];?>).hide();
<?php }
else{?>
$('.fm_myformsample_container'+<?php echo $form['Form']['id'];?>).show();
<?php }
endforeach;?>
$('#sort_by').find(".selected").removeClass();
$('#submitted').addClass("selected");
});
Solución 3
Encontré la solución a mi problema. Acabo de agregar un # al Id en esa condición if, es decir,
if(location.hash=="#submitted"){
$("#submitted").trigger("click");
}
y funciona ahora ... Si hago clic en ese enlace en particular, me redireccionan a esa sección de pestaña en particular.
Otros consejos
pruebe window.location.hash o document.location.hash
Me parece que disparas el clic () antes de configurar el controlador para hacer clic. Intente mover $ (" # enviado "). Trigger (" haga clic en ");
a la parte inferior.