La solución estándar para esto es return false
del controlador click()
. return false
es el equivalente a llamar al preventDefault()
y stopPropagation()
en el evento. preventDefault()
es suficiente para esta tarea también, así que o bien return false
funcionará.
Parece que su problema son los errores de sintaxis y los parámetros incorrectos. Veo:
fadeToggle
no tiene paréntesis;
- el parámetro de función se llama
id
pero llama al event.preventDefault()
; y
- ¿Estás perdiendo el mensaje y enseguida lo muestras? Eso pondrá en cola dos animaciones pero no tiene mucho sentido. Probablemente quiera encadenar esas dos cosas y el
load()
de una manera racional.
así que esto debería funcionar:
$("#permalink a").click(function(event) {
$("#newPost").fadeToggle();
var id = this.getAttribute('href');
$("#newPostContent").load(id);
$("#newPost").show("fast");
return false;
});
Puede sustituir libremente return false
con event.preventDefault()
en este caso, pero el caso click()
propagación puede o causar otros problemas dependiendo de lo que otros controladores de eventos que tiene.
Gracias por su ayuda. –
"Oye, ¿qué está pasando en este lado?" – Steerpike
Ese no es el problema aquí. El problema es .click (función (id) {debe ser .click (función (evento) {. – karim79