Статьи

Остановите действия с помощью jQuery .preventDefault ()

Поскольку действие не выполняется, нам может потребоваться узнать, когда пользователь вызвал действие, и мы можем использовать event.isDefaultPrevented() Это может быть использовано для запуска вызова функции. Также может быть полезно для динамических URL-адресов с XHtmlRequest в jQuery для выборки страницы с модулем, например, href = ”index.php? Page = contact вместо contact.php. Возможно, вы также захотите взглянуть на опции MOD Rewrite, которые также могут обеспечить эту функциональность и полезность SEO. Функции jQuery Stop Event . Будьте осторожны, если вы используете $ (document) .bind («нажатие клавиши», функция (событие), тогда e.preventDefault () не будет работать, попробуйте .. event.preventDefault (). Иногда у вас есть гиперссылка, которая должна быть гиперссылкой, но вы не хотите, чтобы она обрабатывала и открывала ссылку, а только вызывала, скажем, функцию javascript. К счастью, в jQuery есть функция для остановки действия гиперссылки.

Демонстрация функции jQuery Preventdefault

Пример 1 — Предотвращение и отлов гиперссылки

 < !DOCTYPE html>


  



default click action is prevented



$("a").click(function(event) {
  event.preventDefault();
  $('<div></div>')
    .append('default ' + event.type + ' prevented')
    .appendTo('#log');
});



 действие щелчка по умолчанию запрещено

Пример 2 — кнопка «Запретить отправку формы»

 $('#myform').submit(function(event) {
	event.preventDefault();
	var self = this;
	window.setTimeout(function() {
		self.submit();
	}, 2000);
});

Пример 3 — Задержка цели гиперссылки до эффекта анимации

 $("#ELEMENT_WHICH_AFFECT_THE_SLIDEUP")
.click(function(event){
	event.preventDefault(); // prevents link to be redirected
	var time = 1000; // time for slideup effect
	var url = $(this).attr("href"); // pick url for redirecting via javascript

	$("#ELEMENT_TO_SLIDE_UP").slideUp(time); // effect
	window.setTimeout(function(){document.location.href=url;}, time); // timeout and waiting until effect is complete
	return -1;
});

Пример 4 — Отключить кнопку прокрутки

 $(document).keydown(function(event){
	// Move Down
	if(event.keyCode == '40'){
		event.preventDefault();
		var posY = $('#'+selectedTxtID).css('top');
		posY = parseFloat(posY);
		var newPosY = posY + 1;
		$('#'+selectedTxtID).css('top', newPosY+'px');
	}
})

Эту функцию также можно использовать не только для гиперссылок, но и для всего, что имеет действие по умолчанию, которое вы хотите предотвратить.