Skip to content

Commit 89f9975

Browse files
Add matches and closest functions to Web.DOM.Element.
1 parent 3c75698 commit 89f9975

File tree

2 files changed

+25
-0
lines changed

2 files changed

+25
-0
lines changed

src/Web/DOM/Element.js

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -168,3 +168,19 @@ exports.clientHeight = function (el) {
168168
return el.clientHeight;
169169
};
170170
};
171+
172+
exports.matches = function (selector) {
173+
return function(el) {
174+
return function() {
175+
return el.matches(selector);
176+
}
177+
}
178+
}
179+
180+
exports._closest = function (selector) {
181+
return function(el) {
182+
return function() {
183+
return el.closest(selector);
184+
}
185+
}
186+
}

src/Web/DOM/Element.purs

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,6 +35,8 @@ module Web.DOM.Element
3535
, clientLeft
3636
, clientWidth
3737
, clientHeight
38+
, matches
39+
, closest
3840
) where
3941

4042
import Prelude
@@ -127,3 +129,10 @@ foreign import clientTop :: Element -> Effect Number
127129
foreign import clientLeft :: Element -> Effect Number
128130
foreign import clientWidth :: Element -> Effect Number
129131
foreign import clientHeight :: Element -> Effect Number
132+
133+
foreign import matches :: String -> Element -> Effect Boolean
134+
135+
foreign import _closest :: String -> Element -> Effect (Nullable Element)
136+
137+
closest :: String -> Element -> Effect (Maybe Element)
138+
closest selector = map toMaybe <<< _closest selector

0 commit comments

Comments
 (0)