# 08: превенДефаулт, стопПропагатион и ретурн фалсе - ЦСС-трикови

Anonim

То се врло кратко појавило у последњем видеу: како зауставити прегледач да не искочи када кликнете на хеш везу? То је подразумевано понашање прегледача и на срећу, са ЈаваСцрипт-ом можемо претраживачу рећи да то не ради.

Најједноставнији начин да се то реши је овако:

$("a").on("click", function(event) ( event.preventDefault(); ));

Видећете да ове везе не скачу надоле као што можда мислите да би:

Погледајте оловку а5аеаа4890837ац172605983324д5470 аутора Цхрис Цоииер (@цхрисцоииер) на ЦодеПен

Будите опрезни с тим, наравно. То ће зауставити скакање хасх везе са странице, али ће зауставити и прелазак нормалне везе на нову УРЛ адресу. Зато га користите само на усидреним везама за које знате да искључиво желите да их рукујете у свом ЈаваСцрипт-у. Можете сузити ствари попут $("a(href^='#')"). нпр. „Хреф атрибут везе започиње хеширањем.“

Али често ћете видети и ово:

$("a").on("click", function() ( return false; ));

И то постиже исто. Овде се дешава да return false;заправо ради две ствари. Ради event.preventDefault();и ради још једну ствар:event.stopPropagation();

Можете користити ретурн фалсе; ако желите, само треба да схватите шта је стопПропагатион и будите у реду ако то учините. Обично сматрам да је најбоље не зауставити ширење, осим ако не знате да то посебно желите да урадите. Оно што ради је да заустави „мехуриће“ ДОМ догађаја. На пример, ако сте ДОМ је овако:


  • Home
  • About
  • Clients
  • Contact Us

Затим кликнете право десно на реч „Почетна“, тај догађај клика ће се активирати на сидреном линку, затим ће се појавити облачић до ставке листе, затим облачић до неуређене листе, затим навигациони елемент, скроз горе до самог документа.

Када зауставите СтопПропагатион, на било ком догађају елемента на којем га покренете, мехурице ће се ту зауставити. Само будите свесни!

Овде сам написао више о овој разлици.

Пред крај видео снимка говорим о спречавању померања по елементу превенДефаулт. Једноставно сам погрешио што си то могао учинити. Случајно се догоди да је то један догађај који не можете тако зауставити. Постоје начини да се то спречи, попут употребе ЦСС-а ( overflow: hidden;- што може бити чудно) - или постајања прилично фенси.