Recientemente, utilicé Jquery cuando trabajaba en un proyecto. Los principiantes estaban aprendiendo jquery. Encontré algunos problemas "extraños" (maestros, no me culpen).
Gracias al Sr. ClassYuan por su apoyo al blog de ClassYuan http://www.classyuan.com/.
1. Al cargar un evento con un elemento HTML, el evento se ejecutará al mismo tiempo que se carga.
Código de error:
ver fuente
PRint?1 $("#btnLoad").bind("clic",GetProduct());
código correcto
ver fuente
print?1 $("#btnLoad").bind("clic", function() { GetProduct() });
En este código, ignoré el método Bind. La explicación de la API es bind(type,[data],fn).
Por error consideré fn como una función simple. Como resultado, este código ejecutará fn una vez al cargar.
Esto es un descuido en el formato escrito, espero que alguien que sepa el motivo pueda darme algún consejo.
2. El problema del alcance variable (Parece que esto no es un problema de jquery. Es la diferencia entre js y .net...)
ver fuente
imprimir?1 texto de función() {
2 para (var i = 0; i < 3; i++) {
3 $("<a>Eliminar</a>").attr({ id: "hr_" + i, href: "javascript:;" }).addClass("btnCSS").bind("hacer clic", función () { tes(i) }).appendTo(".div_list");
4}
5}
6 funciones tes(id) {
7 alerta (identificación);
8}
Esta función. Quiero que alerte a la identificación correspondiente. El resultado es que la respuesta es muy agradable. Es una función con 3 etiquetas <a>. Cuando aparece, siempre es 3.
Después de mirarlo... lo entiendo.
Con respecto al problema del alcance de la variable, el parámetro pasado a la función tes es el valor de i después de que finaliza el ciclo, por lo que todos son 3.
Esto parece ser diferente de .net.
Finalmente, la solución - -.. Simplemente pase $(this) en
3. Problemas con el orden de ejecución del evento.
ver fuente
imprimir?1 <a target="_blank" title="Iphone" >
2 <img id="proImg7_2" src="" alt="Iphone" style="ancho:70px; alto:60px; borde:ninguno;"
3</a>
El evento onclick está vinculado a esta imagen. El contenido del evento es agregar un atributo href al elemento principal de la etiqueta <img>.
Pero una vez ejecutado el evento, saltará directamente al enlace de la etiqueta a. Después del análisis.
Debe ser que el clic se ejecute antes del href, es decir, cuando se hace clic en la imagen, la etiqueta A ya tiene el href, y luego la etiqueta A se activa al mismo tiempo.
Solución... Elimine la etiqueta exterior a de <img>... Luego modifique el evento
ver fuente
imprimir?1 idwrap(' <a href=" http://www.QQ.com"></a>' );
Los anteriores son los problemas que yo, un novato, encontré al usar jquery por primera vez. Los dejaré aquí y los trataré como un proceso de crecimiento. Estimados veteranos, no se quejen.