2013-11-13 6 views
1

Всякий раз, когда я использую preventDefault(), я обычно поместить его в верхней части обработчика событий, например, так:Ломать .preventDefault()

$('#foo').on('click', function(e){ 
    e.preventDefault(); 
    // do stuff 
}); 

Есть ли вред в размещении его в нижней части обработчика событий, и делать вещи, прежде чем вы будете ссылаться e.preventDefault()?

Перефразируя этот вопрос: вы можете быть уверены, что, в том числе e.preventDefault()везде внутри обработчика событий, вы никогда не будете следовать через - скажем, к цели по ссылке или представления формы?

Я настроил скрипку, что вы можете играть с здесь: http://jsfiddle.net/tuanderful/SMdrN/

+0

Увидимся, что вы уже играли на скрипке, не кажется ли это вредным для этого. он будет действителен до тех пор, пока он не будет доступен непосредственно в функции щелчка – Jai

ответ

0

Пока ничего не происходит в коде, не имеет значения, где вы звоните preventDefault.

Если вы поместили его сначала в код, это предотвратит действие по умолчанию, даже если сценарий снова сработает.

Если вы поместили последнее слово в код, это предотвратит действие по умолчанию, если скрипт не сработает нигде в пути.

3

Да .. где вы размещаете заявление не имеет никакого значения.

Пока e.preventDefault() вызывается внутри обработчика по умолчанию действие не срабатывают

1

Вы можете поместить его туда, куда вы хотите, вы можете даже назвать e.preventDefault(); внутри некоторых, если блок, он не меняет поведение