我在使用enfocus&{39} this-as
时使用listen-live
时遇到问题。我使用listen-live
代替listen
因为我使用javascript生成button
元素。
在以下最低工作代码中,使用从clojurescript生成的HTML
/path/to/file.html
文件test.js
。单击按钮时,我希望控制台记录button
元素,但我会收到Window -> /path/to/file.html
。
file.html
:
<html>
<head>
<script type="text/javascript" src="test.js"></script>
</head>
<body>
<div class="outer">
<button>Button</button>
</div>
</body>
</html>
file.cljs
:
(ns my.ns
(:require [enfocus.events :as events])
(:require-macros [enfocus.macros :as em]))
(em/defaction setup []
[:.outer] (events/listen-live :click "button"
(fn [] (this-as this (js/console.log this)))))
(set! (.-onload js/window) setup)
我对javascript并不过分熟悉,但我希望记录button
或.outer
元素。收到Window
元素会让我想知道我是否有一些基本的使用问题,或者它是enfocus
的问题。
答案 0 :(得分:0)
可能不理想或惯用,但以下适用于我:
(em/defaction setup []
[:.outer] (events/listen-live :click "button"
(fn [e] (js/console.log (.-currentTarget e)))))
=> <button>