当前位置:  开发笔记 > 编程语言 > 正文

我无法继续为dijit.form.Select开火

如何解决《我无法继续为dijit.form.Select开火》经验,为你挑选了0个好方法。

我似乎无法正确地将onchange事件附加到dijit.form.Select小部件.但是,我是网络开发的新手,所以我可能会做一些完全愚蠢的事情(虽然,我能说得最好(而且我已经读过我能找到的所有文档)我不是).我确保body类匹配dojo主题,我为所有使用的小部件(和dojo.parser)dojo.require(),仍然是,nada.我正在使用的代码是:

dojo.addOnLoad(function () {
    var _query = dojo.query('.toggle');
    for (var i in  _query) {
        dojo.connect(_query[i], 'onchange', function (ev) {
            console.log(ev + ' fired onchange');
        });
    }
});

任何帮助都将不胜感激.

另外:在深入研究dijit如何呈现小部件的内部之后,我发现当我将dojoType ='dijit.form.Select'属性 - 值对添加到我的html元素(以声明方式执行此操作)时,dijit实际上呈现了一个 - 行二列表.表的第一个元素是一个span(带有类dijitSelectLabel),我假设它只显示所选(或默认)元素.它的第二个元素似乎是一个呈现为向下箭头的按钮,用于切换菜单主题的显示以响应某些DOM事件.另外(我认为这非常漂亮),dijit实际上并没有将选择选项放在DOM树中,直到触发其中一个事件.在一个新的页面加载(在我点击任何东西之前)之后我立即查看了firebug中的HTML,并且第二个选项无法找到.然后,一旦我点击箭头按钮,就会有一个dijit.Menu小部件,dijit会将dijit.Menu粘贴到body节点的末尾; 在我点击其他地方之后,Menu小部件仍然是正文的lastChild,现在它只是隐藏而没有附加到form.Select小部件.

如果我想要做的就是在DOM树中放置一个不同的dijit.form小部件,具体取决于用户选择的项目,它真的会这么复杂吗?

结论:原来这是一个大写问题.

dojo.connect(widget_obj, 'onChange', function_obj);
工作,而

dojo.connect(widget_obj, 'onchange', function_obj);
没有.

所以我说得对,我是完全愚蠢的.我假设因为全部小写版本在放置html标记作为属性时起作用,Dojo会对它进行同样的处理.这是有道理的,因为dijit.form.Select没有.onchange属性,但确实有.onChange属性.(我最后坚持使用.Select over .FilteringSelect,因为我不会给我的用户任何印象,他们可以输入某些东西.)那么,你们哪一个我做的答案(因为你们两个)在你的帖子中有变化,我想我只是太缺乏经验而无法意识到这个案例很重要)?

推荐阅读
手机用户2402852387
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有