У меня есть этот код:
$link.click(function (e) { debugger; });
Если щелкнуть ссылку и включить отладчик, e - это обычное событие браузера, а не событие jQuery. Там нет .stopPropagation() или .preventDefault().
e
.stopPropagation()
.preventDefault()
Почему это?
Попробуйте
$link.bind("click", function (e) { var jQueryEvent = e, browserEvent = e.originalEvent; });
e должен быть экземпляром jQuery.Event, поэтому эти методы должны быть доступными:
jQuery.Event
$("a").click(function(e) { alert(e instanceof jQuery.Event); // true });
http://jsfiddle.net/dyJtY/
Можете ли вы предоставить больше контекста, например, вывод отладчика?
Потому что, как вы сказали, это обычное событие браузера, а событие браузера не имеет такого метода.
Чтобы остановить распространение, просто return false.
return false