Ինչպես օգտագործել իրադարձությունների ունկնդիրները JavaScript-ում


Միջոցառումների մշակումը կենսական նշանակություն ունի ինտերակտիվ հավելվածների համար: Իմացեք, թե ինչպես արձագանքել մկնիկի և ստեղնաշարի իրադարձություններին՝ օգտագործելով JavaScript:

Շատ վեբ հավելվածներ իրենց գործառույթներն իրականացնելու համար ապավինում են իրադարձությունների որևէ ձևի: Ինչ-որ պահի մարդը փոխազդում է իր ինտերֆեյսի հետ, որը առաջացնում է իրադարձություն: Մարդկանց կողմից առաջնորդվող այս իրադարձությունները սովորաբար հիմնվում են ծայրամասային սարքի վրա, ինչպիսիք են մկնիկը կամ ստեղնաշարը:

Երբ սարքը ստեղծում է իրադարձություն, ծրագիրը կարող է լսել այն, իմանալու, թե երբ պետք է իրականացնել կոնկրետ վարքագիծ: Այս ձեռնարկում դուք կսովորեք, թե ինչպես լսել իրադարձությունները՝ օգտագործելով JavaScript:

Ի՞նչ է իրադարձությունների վրա հիմնված ծրագրավորումը:

Իրադարձությունների վրա հիմնված ծրագրավորումը պարադիգմայի անվանումն է, որը հիմնված է իրադարձության կատարման վրա՝ իր գործառույթներն իրականացնելու համար: Հնարավոր է ստեղծել իրադարձությունների վրա հիմնված ծրագիր ցանկացած բարձր մակարդակի ծրագրավորման լեզվով: Սակայն իրադարձությունների վրա հիմնված ծրագրավորումն առավել տարածված է JavaScript-ի նման լեզուներում, որոնք ինտեգրվում են օգտատիրոջ միջերեսին:

Ի՞նչ է Իրադարձությունների ունկնդիրը:

Իրադարձությունների ունկնդիրը գործառույթ է, որը նախաձեռնում է նախապես սահմանված գործընթաց, եթե տեղի է ունենում կոնկրետ իրադարձություն: Այսպիսով, իրադարձության ունկնդիրը «լսում է» գործողությունը, այնուհետև կանչում է գործառույթ, որը կատարում է համապատասխան առաջադրանք: Այս իրադարձությունը կարող է ունենալ բազմաթիվ ձևերից մեկը: Ընդհանուր օրինակները ներառում են մկնիկի իրադարձությունները, ստեղնաշարի իրադարձությունները և պատուհանի իրադարձությունները:

Իրադարձությունների ունկնդիրի ստեղծում՝ օգտագործելով JavaScript

Դուք կարող եք լսել իրադարձություններ DOM-ի ցանկացած տարրի վերաբերյալ: JavaScript-ն ունի addEventListener() ֆունկցիա, որը կարող եք զանգահարել վեբ էջի ցանկացած տարրի վրա: addEventListener() ֆունկցիան EventTarget ինտերֆեյսի մեթոդ է: Բոլոր օբյեկտները, որոնք աջակցում են իրադարձություններին, իրականացնում են այս ինտերֆեյսը: Սա ներառում է պատուհանը, փաստաթուղթը և էջի առանձին տարրեր:

AddEventListener() ֆունկցիան ունի հետևյալ հիմնական կառուցվածքը.

element.addEventListener("event", functionToExecute);

Որտեղ:

  • տարրը կարող է ներկայացնել ցանկացած HTML թեգ (կոճակից մինչև պարբերություն)
  • «իրադարձությունը»-ը կոնկրետ, ճանաչված գործողություն անվանող տող է
  • functionToExecute-ը հղում է գոյություն ունեցող ֆունկցիային

Եկեք ստեղծենք հետևյալ վեբ էջը, որն ունի մի քանի HTML տարրեր.

<!DOCTYPE html>
<html lang="en">
<head>
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <div id="home">
        <h1 class="mainHeading">Welcome</h1>
        <p>
           Hello, welcome to my website.
        </p>
        <button class="btn" id="btn=1">Learn More</button>
    </div>
    <div id="about">
        <h2 class=subheading>User Info</h2>
        <label for="username">User Name: </label>
        <input type="text" id="username">
        <button class="btn" id="btn-2">Submit</button>
    </div>
    <script src="app.js"></script>
</body>
</html>

Վերևի HTML կոդը ստեղծում է մի պարզ էջ, որը կապում է JavaScript ֆայլին, որը կոչվում է app.js: app.js ֆայլը կպարունակի իրադարձության ունկնդիրներին կարգավորելու կոդը: Այսպիսով, եթե ցանկանում եք սկսել որոշակի գործընթաց, երբ օգտվողը սեղմում է վեբ էջի առաջին կոճակը, սա այն ֆայլն է, որտեղ այն պետք է ստեղծվի:

app.js ֆայլը

document.querySelector('.btn').addEventListener("click", clickDemo)
function clickDemo(){
    console.log("Hi there")
}

Վերևի JavaScript կոդը մուտք է գործում էջի առաջին կոճակը՝ օգտագործելով querySelector() ֆունկցիան: Այնուհետև այն ավելացնում է իրադարձությունների լսող այս տարրին՝ օգտագործելով addEventListener() մեթոդը: Կոնկրետ իրադարձությունը, որը նա լսում է, ունի «սեղմել» անունը: Երբ կոճակը գործարկում է այդ իրադարձությունը, լսողը կկանչի clickDemo() ֆունկցիան:

clickDemo() ֆունկցիան տպում է «Բարև ձեզ» բրաուզերի վահանակում: Ամեն անգամ, երբ սեղմում եք կոճակը, դուք պետք է տեսնեք այս ելքը ձեր վահանակում:

«Սեղմեք» Իրադարձության ելքը

Որոնք են մկնիկի իրադարձությունները:

JavaScript-ն ունի MouseEvent ինտերֆեյս, որը ներկայացնում է իրադարձություններ, որոնք տեղի են ունենում մկնիկի հետ օգտատերերի փոխազդեցության պատճառով: Մի քանի իրադարձություններ օգտագործում են MouseEvent ինտերֆեյսը: Այս իրադարձությունները ներառում են հետևյալը.

  • սեղմել
  • dblclick
  • մկնիկի շարժում
  • mouseover
  • մկնիկը դուրս հանել
  • mouseup
  • mousedown

սեղմել իրադարձությունը տեղի է ունենում, երբ օգտատերը սեղմում և արձակում է մկնիկի կոճակը, մինչդեռ դրա ցուցիչը գտնվում է տարրի վրա: Սա հենց այն է, ինչ տեղի ունեցավ նախորդ օրինակում: Ինչպես տեսնում եք վերը նշված ցանկից, մկնիկի իրադարձությունները կարող են տարբեր ձևեր ունենալ:

Մկնիկի մեկ այլ տարածված իրադարձություն է dblclick, որը նշանակում է կրկնակի սեղմում: Սա գործարկվում է, երբ օգտատերը երկու անգամ անընդմեջ սեղմում է մկնիկի կոճակը: addEventListener() ֆունկցիայի ուշագրավ բանն այն է, որ դուք կարող եք օգտագործել այն մեկ տարրին մի քանի իրադարձությունների ունկնդիրներ նշանակելու համար:

Առաջին կոճակին dblclick իրադարձություն ավելացնելը

document.querySelector('.btn').addEventListener("dblclick", dblclickDemo)
function dblclickDemo(){
    alert("This is a demonstration of how to create a double-click event")
}

Վերը նշված կոդը app.js ֆայլին ավելացնելով արդյունավետորեն կստեղծվի վեբ էջի առաջին կոճակի երկրորդ իրադարձությունների լսող: Այսպիսով, առաջին կոճակը երկու անգամ սեղմելով զննարկիչում կստեղծվի հետևյալ ահազանգը.

Վերևի պատկերում կտեսնեք ստեղծվող ահազանգը, ինչպես նաև կտեսնեք, որ ևս երկու «Բարև ձեզ» ելք կա վահանակում: Դա պայմանավորված է նրանով, որ կրկնակի սեղմումով իրադարձությունը երկու սեղմումով իրադարձությունների համակցություն է, և կան իրադարձություններ ունկնդիրներ և՛click, և՛dblclick իրադարձությունների համար:

Ցանկում մկնիկի մյուս իրադարձությունների անունները նկարագրում են նրանց վարքը: mousemove իրադարձությունը տեղի է ունենում ամեն անգամ, երբ օգտատերը տեղափոխում է իր մկնիկը, երբ կուրսորը գտնվում է տարրի վրայով: մկնիկի ավելացումիրադարձությունը տեղի է ունենում, երբ օգտատերը սեղմում է կոճակը տարրի վրա, այնուհետև բաց է թողնում այն:

Որոնք են ստեղնաշարի իրադարձությունները:

JavaScript-ն ունի KeyboardEvent ինտերֆեյս: Սա լսում է օգտագործողի և նրա ստեղնաշարի փոխազդեցությունը: Նախկինում KeyboardEvent-ն ուներ երեք տեսակի իրադարձություն: Այնուամենայնիվ, JavaScript-ը հնացել է keypress իրադարձությունը:

Այսպիսով, keyup և keydown իրադարձությունները միակ երկու առաջարկվող իրադարձություններն են ստեղնաշարի վրա, որոնք այն ամենն են, ինչ ձեզ հարկավոր է: keydown իրադարձությունը տեղի է ունենում, երբ օգտատերը սեղմում է ստեղնը, և keyup իրադարձությունը տեղի է ունենում, երբ օգտագործողը թողարկում է այն:

Վերանայելով վերը նշված HTML օրինակը՝ ստեղնաշարի իրադարձությունների ունկնդիր ավելացնելու լավագույն վայրը մուտքագրում տարրն է:

Ստեղնաշարի իրադարձությունների ունկնդիր ավելացնելով app.js ֆայլին

let greetings = document.querySelector('p');
document.querySelector('input').addEventListener("keyup", captureInput)
function captureInput(e){
    greetings.innerText = (`Hello ${e.target.value}, welcome to my website.`)
}

Վերևի կոդը օգտագործում է querySelector() ֆունկցիան՝ էջի պարբերությունը և մուտքագրման տարրերը մուտք գործելու համար: Այնուհետև այն կանչում է addEventListener() մեթոդը input տարրի վրա, որը լսում է keyup իրադարձությունը: Ամեն անգամ, երբ տեղի է ունենում keyup իրադարձություն, captureInput() ֆունկցիան վերցնում է հիմնական արժեքը և ավելացնում այն էջի պարբերությանը: e պարամետրը ներկայացնում է իրադարձությունը, որը JavaScript-ը ավտոմատ կերպով նշանակում է: Այս իրադարձության օբյեկտն ունի հատկություն՝ թիրախ, որը հղում է այն տարրին, որի հետ օգտատերը շփվել է:

Այս օրինակումմուտքագրումդաշտին կցված պիտակը օգտանուն է խնդրում: Եթե մուտքագրեք ձեր անունը input դաշտում, ապա վեբ էջը կունենա այսպիսի տեսք.

Այժմ պարբերությունը պարունակում է մուտքային արժեք, որը վերը նշված օրինակում «Ջեյն Դո» է:

addEventListener-ը գրավում է բոլոր տեսակի օգտատերերի փոխազդեցությունը

Այս հոդվածը ձեզ ներկայացրեց addEventListener() մեթոդը, ինչպես նաև մկնիկի և ստեղնաշարի մի քանի իրադարձություններ, որոնք կարող եք օգտագործել դրա հետ: Այս պահին դուք գիտեք, թե ինչպես լսել որոշակի իրադարձություն և ինչպես ստեղծել գործառույթ, որն արձագանքում է դրան:

addEventListener-ն ապահովում է լրացուցիչ հնարավորություն, սակայն, իր երրորդ պարամետրի միջոցով: Դուք կարող եք օգտագործել այն իրադարձությունների տարածումը վերահսկելու համար. իրադարձությունների հաջորդականությունը տարրերից դեպի ծնողներ կամ երեխաներ տեղափոխելու համար: