управлять событиями в Haskell
В настоящее время я работаю с GHCJS.DOM / JSDOM в Haskell с целью создания небольшого веб-приложения. Чтобы зафиксировать событие "нажмите кнопку", я пишу следующий код:
releaseAction <- on element click $ do
w <- currentWindowUnchecked
alert w "I was clicked!"
releaseAction
(это пример взят со страницы https://hackage.haskell.org/package/jsaddle-dom-0.9.4.1/docs/JSDOM-EventM.html); проблема в следующем: если я удалю последнюю строку (поэтому я удалю releaseAction), то я могу щелкнуть «элемент» столько раз, сколько захочу, и, следовательно, запустить события столько раз, сколько захочу. С другой стороны, если я не удаляю последнюю строку, это отменяет событие, не позволяя мне запустить даже одно событие. Моя цель - позволить пользователю щелкнуть только один раз «элемент», и тогда это событие должно быть запрещено. Как я могу выполнить работу? Спасибо.
1 ответ
Ты можешь использовать mfix
:
mfix $ \releaseAction -> on element click $ do
w <- currentWindowUnchecked
alert w "I was clicked!"
releaseAction