gpt4 book ai didi

html - dijit 声明式事件处理程序

转载 作者:行者123 更新时间:2023-11-28 18:26:20 30 4
gpt4 key购买 nike

我正在尝试声明一个 dijit TextBox,但我无法将 focus 事件附加到它。

我试过以声明的方式这样做:

<div class="midArea_div">
<div class="searchBox_div">
<input type="text" data-dojo-name="searchBox_input" data-dojo-type="dijit.form.TextBox" data-dojo-props="placeHolder:'Search...'"class="searchBox"></input>
<script type="dojo/on" data-dojo-event="onFocus" data-dojo-args="evt">
alert("hi");
</script>
<div class="searchIcon_overlay"></div>
</div>
</div>

也可以编程方式。 http://jsfiddle.net/YyFw5/

js:

require([
"dijit/dijit",
"dojo/parser",
"maqetta/space",
"maqetta/AppStates",
"dijit/layout/BorderContainer",
"dijit/layout/ContentPane",
"dijit/form/TextBox",
"dojo/on"
]);
require(["dojo/ready", "dojo/dom", "dojo/_base/fx", "dojo/on", "dijit/registry"], function(ready, dom, base_fx, on, registry){
ready(function(){
// logic that requires that Dojo is fully initialized should go here
//on(registry.byId("searchBox_input"), "focus", function(a){alert("hi");});
});
});

最佳答案

在您的声明性 示例中,您使用的是 dojo/on模块,它执行自己的原生 DOM 事件规范化。 onFocus回调是一个 Dijit 小部件构造(如果您想查看源代码,则通过 _FormMixin 混合到 _WidgetBase 中)当小部件变为“事件”时使用,因为它或其中的小部件具有焦点或已被单击。

您想使用 normalized event name使用您的事件处理程序如下:

<script type="dojo/on" data-dojo-event="focus" data-dojo-args="evt">
alert("hi");
</script>

除了您调用的是 registry.byId("searchBox_input") 之外,我没有发现您的程序化 示例有任何明显的错误。具有不存在的 ID(来自您的代码示例)。也许你应该添加一个 id data-dojo-props 的 key 或作为您的 <input> 的属性节点。

关于html - dijit 声明式事件处理程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15617976/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com