diff --git a/types/isotope-layout/index.d.ts b/types/isotope-layout/index.d.ts index 910f623f90bfdb..1c2010e00d6576 100644 --- a/types/isotope-layout/index.d.ts +++ b/types/isotope-layout/index.d.ts @@ -13,6 +13,10 @@ declare namespace Isotope { | "cellsByColumn" | "horiz"; type Elements = HTMLElement[] | HTMLElement | JQuery | NodeList; + type Events = + | "arrangeComplete" + | "layoutComplete" + | "removeComplete"; interface IsotopeOptions { /** @@ -269,6 +273,24 @@ interface Isotope { * @param elements Element, jQuery Object, NodeList, or Array of Elements */ updateSortData(elements: Isotope.Elements): void; + /** + * Bind event listener + * @param event string + * @param listener Function + */ + on(event: Isotope.Events, listener: () => void): void; + /** + * Un-bind event listener + * @param event string + * @param listener Function + */ + off(event: Isotope.Events, listener: () => void): void; + /** + * Bind event listener to be triggered just once + * @param event string + * @param listener Function + */ + once(event: Isotope.Events, listener: () => void): void; } declare const Isotope: { diff --git a/types/isotope-layout/isotope-layout-tests.ts b/types/isotope-layout/isotope-layout-tests.ts index 8bfb73995f6a33..b8e8671c26be69 100644 --- a/types/isotope-layout/isotope-layout-tests.ts +++ b/types/isotope-layout/isotope-layout-tests.ts @@ -120,3 +120,6 @@ iso.shuffle(); iso.stamp($("div")); iso.unstamp($("div")); iso.updateSortData($("div")); +iso.on("arrangeComplete", () => {}); +iso.off("layoutComplete", () => {}); +iso.once("removeComplete", () => {});