Mivel éppen eseményekről beszéltünk, most jó alkalom az egyedi események megemlítésére. Az összes esemény, amiről eddig beszéltünk, úgymond „igazi” esemény. Olyan események, amelyek a DOM-ból származnak, valós események alapján, mint például egy kattintás vagy egy gombnyomás. Ezek az események mesterségesen „kiválthatók” a jQuery-ben. Például egy gombnyomásra történő „hamisításhoz” a következőket teheti:
$("#some-button").trigger("click");
Ezután minden, a gombhoz kötött kattintáskezelő úgy fog működni, mintha egy felhasználó valóban rákattintana erre a gombra. De mi lenne, ha megtennénk:
$("#some-button").trigger("dance");
Mi történik akkor? A „tánc” nem „igazi” esemény. De nem fog hibát dobni. Csak úgy történik, hogy valószínűleg nincs egyetlen „táncos” kezelő sem ehhez a gombhoz kötve. De lehet, és lényegében ez egy egyedi esemény. Olyan nevű esemény, amelyet csak kitalálsz.
Miért tenne ilyet? Többnyire szervezeti okokból. Talán el szeretné különíteni az eseményeket és műveleteket kezelő JavaScriptjét, valamint az adatokat és az adminisztratív dolgokat kezelő JavaScriptjét. Ez nagyon ésszerű. Ha ez a gomb valószínűleg egy „Beállítások mentése” gomb lenne, egyszerűen kiválthatja a „mentés-beállítások” nevű egyéni eseményt, és másutt van egy kezelője, amely várja az esemény elindulását, és elvégzi az adatok tényleges mentését. Lényegében ezt tettük a videó példájában.
Az egyéni események másik felhasználási esete az általános felhasználói felület összetevőinek létrehozása. Erről ebben a blogbejegyzésben beszélek.
Talán harmonika effektust hoz létre felhasználói felületként. A harmonika azt csinálja, amihez minden harmonika kapcsolódik, kinyitja és bezárja a paneleket a kattintásokon / csapokon. A felhasználói felület komponense ezt nagyon szépen elvégzi. Most egy fejlesztőnek, aki ezt a harmonikát használja, különleges és egyedi dolgai lehetnek, amelyeket meg akarnak történni vele. Tegyük fel, hogy a harmonikát használják a fiókbeállításokhoz, és amikor a felhasználó bezár egy panelt, el akarják menteni az adatokat az adott panel űrlapelemeiből. Hagyományos modell lehet, hogy az adott harmonika felhasználói felület komponens szerzője visszahívási funkciókat kínál, amikor ez a művelet megtörténik. A harmonika inicializálásakor átadja azokat a visszahívási funkciókat, amelyeket akkor szeretne meghívni, amikor ezek a dolgok megtörténnek. Ez az egyik út lefelé. Egy másik út az lenne, ha a harmonika csak automatikusan elindítaná az egyedi eseményeket minden releváns műveletnél.Amikor az a panel bezárul, lőhet apanelClosed
esemény maga a harmonika elem. Akkor a vele dolgozó fejlesztők csak kötődhetnek ezekhez az eseményekhez. Ez csak egy újabb út, amelyen szervezési okokból mehet, amely elég elegáns lehet.