Estoy tratando de hacer que un activador funcione en función de la cadena de consulta de la URL. Uso este código para obtener la cadena de URL.
var getUrlParameter = function getUrlParameter(sParam) { var sPageURL = window.location.search.substring(1), sURLVariables = sPageURL.split('&'), sParameterName, i; for (i = 0; i < sURLVariables.length; i++) { sParameterName = sURLVariables[i].split('='); if (sParameterName[0] === sParam) { return sParameterName[1] === undefined ? true : decodeURIComponent(sParameterName[1]); } } };y una vez que lo consigo, lo pongo dentro de un si, entonces, así:
$(document).ready(function () { let code_para = getUrlParameter("code"); if (code_para == "one") { $("#one").trigger('click'); } else if(code_para == "two") { $("#two").trigger('click'); } else if(code_para == "three") { $("#three").trigger('click'); } else if(code_para == "four") { $("#four").trigger('click'); } else if(code_para == "five") { $("#five").trigger('click'); } else { //do nothing } });pero el problema es que la parte del gatillo no funciona. Adjunté un violín para el código completo Fiddle
un par de sugerencias: podría simplificar su lógica y simplemente usar code_para como identificador en el selector (suponiendo que code_para sea en realidad el mismo que el id del elemento en el que desea hacer clic. No queda el bloque else para hacer algo en el ausencia de code_para).
$(document).ready(function () { let code_para = getUrlParameter("code"); if (code_para) { $("#" + code_para).trigger('click'); } else { //do nothing } });Pero en lugar de activar un clic en otro elemento DOM, activaría la función que provoca el clic, por lo que si estos elementos tienen una función en el clic, entonces simplemente activaría la función directamente, en lugar de estimular un evento de clic que luego activa la funcion....
Su problema es que hacer clic en #three (por ejemplo) no hace nada (según el violín provisto).
Entonces, activar el clic no hace nada.
No es (solo) que sea demasiado pronto, porque los otros enlaces ( hover el mouse y click ) están en .box3 , no en #three . Debe activar en .box3 , por ejemplo:
$(()=> $(".box3").trigger('mouseover').trigger("click") ) Entonces su ( switch ) necesitaría convertir:
if (code_para == "one") { $(".box1").trigger('mouseover').trigger("click")