que tienen un código como éstehref jQuery y separación onclick
<a id="id101" href="javascript:func1();" onclick="return func2();">Link</a>
func2 devuelve verdadero o falso. Entonces, func1 se llama solo cuando function2 devuelve verdadero. Correcto ?
En jQuery aprendizaje, descubrí que onclick no es bueno y se deprecia, por lo que modificó el código anterior a
<a id="id101" href="javascript:func1();">Link</a>
jquery
$("#id101").click(func2() {
//same stuffs from before which was in func2
});
Ahora, mi pregunta es:
después de tomar clic manejador cuidado, ¿qué puedo hacer con JavaScript dentro de href? ¿Debería invocar func1 dentro de func2 en jQuery click handler de func2, cuando la condición dentro de func2 es verdadera? ¿O hay alguna solución elegante?
Además, la separación de html y código de eventos es buena, pero aquí este elemento con id id101
puede tener muchos eventos asociados, y en un archivo grande, puede haber tantos elementos html con muchos eventos. Entonces, cuando tengo una página grande con muchos manejadores de eventos, entonces ¿cómo puedo saber qué elemento html tiene qué y cuántos eventos están asociados con él?
Más explicación a la pregunta anterior conforme a lo solicitado,
que significaba ID101 puede tener onclick, onmouseover, onmouseout y muchos otros eventos. Puede haber muchos de tales elementos con muchos de estos controladores de eventos. ¿Cómo puedo verlos? En el estilo antiguo, todos los controladores de eventos están colocados juntos, como este
<a id="id101" href="javascript:func1();" onclick="return func2();">Link</a>
.
No estoy diciendo que esto sea bueno, pero al menos puedo ver que tiene este evento onclick. Pero ahora, al separar esto en un archivo jquery, tengo que buscar primero este archivo jquery para id101 y luego verificar los eventos asociados con él, lo que puede ser un problema con el archivo html que tiene muchos elementos y manejadores de eventos asociados. ¿Hay alguna forma mejor de encontrar esa información?
No ponga JavaScript en el "href" en absoluto. Simplemente haga eso (condicionalmente, si lo desea) en el controlador de eventos. – Pointy
@endroix: Como dijo Pointy, simplemente elimine todo el atributo 'href'. Inline JS es una mala noticia. Y, cuando se vincula con el selector jQuery, debe usar un '#' para indicar ID. En este momento, tu jQuery probablemente no haga nada. Cámbielo a '$ (" # id101 "), haga clic en();' y elimine todo 'href =" x "'. – Josh
@Josh, me olvidé de eso #. Ahora actualizado – newcoderintown