Ver Mensaje Individual
  #6 (permalink)  
Antiguo 09/09/2015, 09:02
Avatar de Drako_18
Drako_18
 
Fecha de Ingreso: mayo-2005
Ubicación: Madrid
Mensajes: 505
Antigüedad: 19 años, 7 meses
Puntos: 16
Respuesta: como modificar el siguiente script para ahorrar muchas lineas de codigo

Buenas,

Si quieres haz de poner:
$("#" + oid).on....
Ten en cuenta, que el selector de ID es así: $("#MiId")

Pero eso, o poner lo que te dije antes, es exactamente lo mismo, pues estás usando el objeto que tiene la clase "letraenlace"...

Cuando haces el:
$(".letraenlace").click(function()
{
var oid=$(this).attr("id");
//console.log(oid);
$(oid).on("click", mostrarLogin);
}

Es lo mismo que hacer:
$(".letraenlace").on("click", mostrarLogin);

Pues cada "letraenlace" va a llamar su propio mostrarLogin...
Haciendo lo que dices, lo que haces es:

Click en EsteEnlace={
var oID= EsteEnlace.dimeSuID;
NuevoClick en EsteEnlace = mostrarLogin;
}

Básicamente, dentro de un CLICK le estás diciendo que al hacer click sobre el enlace, cambie su CLICK a la llamada de una variable... No tiene sentido compañero...


Ejemplo....

DOM:
<a class="letraenlace" id="uno">click</a>
<a class="letraenlace" id="dos">click</a>

Cargas el JS:
<a class="letraenlace" id="uno" OnClick='$(".letraenlace").click(function(){var oid=$(this).attr("id");$(oid).on("click", mostrarLogin);}'>click</a>

<a class="letraenlace" id="dos" OnClick='$(".letraenlace").click(function(){var oid=$(this).attr("id");$(oid).on("click", mostrarLogin);}'>click</a>


Haces CLICK en ID=uno:
<a class="letraenlace" id="uno" OnClick='mostrarLogin'>click</a>

<a class="letraenlace" id="dos" OnClick='$(".letraenlace").click(function(){var oid=$(this).attr("id");$(oid).on("click", mostrarLogin);}'>click</a>

Hasta que no haces otra vez click en el elemento ID=uno, no se ejecuta el mostrarLogin...
Esto, es lo que estás haciendo al ejecutar ese código.


Un saludo!
__________________
Rubén Espada
Desarrollador full stack .Net (Angular + JS + .Net Core)