Может ли кто-нибудь сказать мне, как создать обработчик события щелчка правой кнопкой мыши в Clojure? Я знаком с «: щелчком» для простых кликов, но не прав или двойных щелчков. Кажется, не найти полезные ресурсы в Интернете. Благодаря!Щелкните правой кнопкой мыши на ClojureScript?
7
A
ответ
7
Часто в ClojureScript библиотека Google Closure (Event Handling | Closure Library | Google Developers) используются вместо сырого JS , events (Closure Library API Documentation - JavaScript) пространство имен содержит goog.events.EventType
перечисление, который определяет каждый отдельный тип события:
(ns test.core
(:require [goog.dom :as dom]
[goog.events :as events]))
(letfn [(menu-listener [event]
(.log js/console (str "contextmenu " (.-button event))))
(click-listener [event]
(let [btn (.-button event)
msg (if (= btn 2) "Right-click" (str "Button " btn))]
(.log js/console msg)))]
(events/listen (dom/getElement "click-target") "contextmenu" menu-listener)
(events/listen (dom/getElement "click-target") "click" click-listener))
;; src/test/core.cljs
.
<!DOCTYPE html>
<html>
<head>
<title>contextmenu</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
</head>
<body>
<p id="click-target">Right click on me</p>
<script src="out/test.js" type="text/javascript"></script>
</body>
</html>
<!-- index.html -->
Наблюдайте:
- щелчку правой кнопкой мыши (кнопка 2) запускает
contextmenu
слушателя. Слушательclick
не видит его (даже если нет слушателяcontextmenu
). - Второй щелчок правой кнопкой мыши отключит контекстное меню, но ни один слушатель не будет запущен.
5
Использование om
Я получил щелчок правой кнопкой мыши как событие контекстного меню. Номер кнопки 2 для правой кнопки:
{:onContextMenu (fn [e]
(prn e (.-button e)))}
или в простом HTML + cljs:
<div id="btn">Click me</div>
(.addEventListener (.getElementById js/document "btn")
"contextmenu" (fn [e] (prn e (.-button e))))
Смежные вопросы
- 1. AutoHotKey Щелкните правой кнопкой мыши
- 2. Щелкните правой кнопкой мыши MainMenu
- 3. Щелкните правой кнопкой мыши contextMenu на QPushButton
- 4. Щелкните правой кнопкой мыши на NSStatusItem
- 5. Щелкните правой кнопкой мыши на svg
- 6. Щелкните правой кнопкой мыши на кнопке/Scala
- 7. щелкните правой кнопкой мыши на IE
- 8. Щелкните правой кнопкой мыши на элементе QTreeView
- 9. Щелкните правой кнопкой мыши на JButton
- 10. Щелкните правой кнопкой мыши на JavaFX?
- 11. Щелкните правой кнопкой мыши на .Net TreeNode
- 12. Щелкните правой кнопкой мыши по событию мыши
- 13. Щелкните правой кнопкой мыши в DataGrid
- 14. Щелкните правой кнопкой мыши по OSX новинка
- 15. Щелкните правой кнопкой мыши по WebBuild
- 16. Eclipse RCP щелкните правой кнопкой мыши событие
- 17. flex TLF щелкните правой кнопкой мыши
- 18. Щелкните правой кнопкой мыши в режиме Swing
- 19. VB6 Listbox Щелкните правой кнопкой мыши
- 20. GtkIconView Щелкните правой кнопкой мыши Активировать
- 21. Щелкните правой кнопкой мыши по TDBGRID delphi2007
- 22. Отправьте кнопку меню (щелкните правой кнопкой мыши)
- 23. щелкните правой кнопкой мыши событие в opencv
- 24. WPF Datagrid гиперссылок Щелкните правой кнопкой мыши
- 25. Отзывчивый Щелкните правой кнопкой мыши Защита изображений
- 26. Cocoa: Щелкните правой кнопкой мыши NSStatusItem
- 27. Щелкните правой кнопкой мыши в проводнике Windows
- 28. Щелкните правой кнопкой мыши по строке GridView
- 29. Щелкните правой кнопкой мыши по началу
- 30. OpenLayers 3 щелкните правой кнопкой мыши событие
см. Http://stackoverflow.com/questions/2405771/is-right-click-a-javascript-event – edbond
Спасибо, но это для Javascript not Clojure. Я понимаю, что JS работает под капотом Clojure, но ищет фрагмент кода в Clojure. –