der*_*itz 3 purescript halogen
我正在使用 purescript-halogen 来构建一个类似电子表格的表格(类似于Handsontable)。如果您双击一个单元格,一个 html 输入元素将呈现为相应表格单元格的子元素(并且不会为所有其他单元格呈现此类元素)。
这对卤素非常有效,只是我不知道如何自动将焦点设置到新创建的输入元素。
我尝试了该autofocus属性,但这仅适用于双击的第一个单元格。JavaScript 的focus()方法是在新元素上调用该方法,但是我不知道在卤素中更新 DOM 后如何调用它。有任何想法吗?
好的,这是我如何使用 Phil 的Initializer提示做到的:
编写一个真正聚焦元素的 JavaScript 函数。
exports.setFocusImpl = function(elemId) {
return function() {
document.getElementById(elemId).focus();
};
};
Run Code Online (Sandbox Code Playgroud)
FFI吧。
foreign import data FOCUS :: !
foreign import setFocusImpl :: forall e. Fn1 String (Eff (focus :: FOCUS | e) Unit)
setFocus :: forall e. String -> Eff (focus :: FOCUS | e) Unit
setFocus = runFn1 setFocusImpl
Run Code Online (Sandbox Code Playgroud)
然后使用setFocus初始化器中的函数。
H.input
[ A.id_ "inputField"
, A.Initializer do
liftEff $ setFocus "inputField"
pure DoNothing
] [ ]
Run Code Online (Sandbox Code Playgroud)
请注意,我使用的是旧版本的卤素,其中签名仍然是旧版本(在 30e8b2c7 中的定义Initializer)。
| 归档时间: |
|
| 查看次数: |
437 次 |
| 最近记录: |