【发布时间】:2011-01-07 19:00:15
【问题描述】:
我浏览了 Dojo 文档和 API 并尝试了 Google,但找不到解决问题的方法,希望这里的任何人都可以帮助我。
我正在尝试以编程方式(使用 Dojo 1.4)创建 dijit.form.select 并连接到小部件的“onClick”事件。 这是我的代码的一部分:
var dataSelect = new dijit.form.Select({
id : "myselect",
name : "myselect",
labelAttr: "label",
labelType: "html"
},
"selectid");
dataSelect.addOption({value: "value", label: "first item label"});
dojo.connect(dataSelect, "onClick", function() {
alert("clicked!");
});
它的作用:创建一个选择框以替换 ID 为“selectid”的输入字段,创建一个选项“第一个项目标签”。一切都好,直到这里。 然后我连接到选择的“onClick”事件,该事件应该通过 AJAX 加载更多选项(但在本例中仅显示警报以用于测试目的)。
问题:当我单击下拉列表旁边的小箭头时,会触发事件(确定)。但是当我单击选择框本身(包含选项的区域)时,第一次单击它时不会触发该事件(除非我之前单击了箭头)。 当我第二次(以及之后的每次)单击选择框时,事件都会触发!
我尝试使用“onFocus”而不是“onClick”,它确实有效,但是第一次点击时下拉菜单不会打开,即使我使用“openDropDown”功能(连接到“点击“!)。
是我,我遇到了 Dojo 错误还是我没有得到的奇怪功能? 任何帮助表示赞赏。
您好, 选择0r
【问题讨论】:
-
可能调用 dataSelect.startup() 方法(在创建小部件之后)会解决这个问题?
-
嗯,我看到 dijit.form.Select 是一个旧的小部件。我尝试从 v 1.3(不带属性和选项)以编程方式创建 FilteringSelect 和 ComboBox,并且您的代码运行良好。
-
好的,我试试看。谢谢!