dojo.connect不适用于onClick事件(在Internet Explorer中)

时间:2013-07-21 11:38:10

标签: javascript javascript-events internet-explorer-8 dojo event-handling

我像这样添加了dojo.connect语句,

dojo.connect(dojo.byId(this._paramsForm), "onChange", this, "_handleUpdate");

此时,当我浏览器调试并检查值时,this._paramsForm具有有效值。 但是当事件被触发时,不会调用onChange函数。 dojo.connect语句中必定存在一些问题,但无法跟踪它。

也试过这个,没有运气:(

dojo.connect(this._paramsForm, "onChange", this, "_handleUpdate");

也提到了这个链接,没有运气 dojo.connect won't connect 'onclick' with button

但同样的事情在chrome和firefox中工作得非常好。

请帮我解决这个问题。 !

1 个答案:

答案 0 :(得分:0)

我认为你注册事件处理程序的方式是错误的 - 试试这个:

require('dojo/_base/lang', 'dojo/on');

on(this._paramsForm, "change", lang.hitch(this, _handleUpdate));

请注意,在最新版本中,前缀'on'已被删除 - 您只需要使用'click','change'等;作为事件名称。 lang.hitch - 确保在'this'的上下文中执行_handleUpdate。

如果您使用的是较旧版本的dojo(< 1.7),那么代码将类似:

dojo.connect(this._paramsForm, "onChange", dojo.hitch(this, _handleUpdate));