I've just started learning Purescript. I'd like to experiment with it in a simple web page. I want to start by learning only plain Purescript and not use any frameworks, such as Halogen or Pux etc.
I believe I'll need to use the purescript-web-html
package to register a button click event. I searched for, but didn't find any beginner level examples of using this package to listen for and handle html element events.
<script>
function log_click() {
console.log("clicked");
}
document.addEventListener('DOMContentLoaded', function() {
document.getElementById('myButton').onclick = log_click;
});
</script>
<body>
<button id="myButton" >click me</button>
</body>
Here's my plain Purescript attempt:
logClick :: Effect Unit
logClick = log "button clicked"
main :: Effect Unit
main = do
w <- window
doc <- document w
buttonMaybe <- getElementById "myButton" $ toNonElementParentNode doc
myEventTarget <- case buttonMaybe of
Nothing -> throw "element with id 'myButton' not found."
Just myButtonElem -> toEventTarget myButtonElem
let listener = eventListener logClick
addEventListener click listener true myEventTarget