Ответ 1
Стандартное решение для этого - return false
из обработчика click()
. return false
является эквивалентом вызова preventDefault()
и stopPropagation()
события. preventDefault()
достаточно для этой задачи, так что либо он, либо return false
будет работать.
Проблема заключается в синтаксических ошибках и неверных параметрах. Я вижу:
-
fadeToggle
не имеет круглых скобок; - параметр функции называется
id
, но вы вызываетеevent.preventDefault()
; и - Вы угасаете сообщение, а затем сразу же показываете его? Это поставит в очередь две анимации, но не имеет большого смысла. Вы, вероятно, хотите объединить эти две вещи и
load()
рациональным образом.
Итак, это должно работать:
$("#permalink a").click(function(event) {
$("#newPost").fadeToggle();
var id = this.getAttribute('href');
$("#newPostContent").load(id);
$("#newPost").show("fast");
return false;
});
Вы можете свободно заменить return false
на event.preventDefault()
в этом случае, но распространяющееся событие click()
может или может вызвать другие проблемы в зависимости от того, какие у вас есть другие обработчики событий.