使用dojo.connect()添加事件的注意事项

使用dojo.connect()添加事件处理器是很方便的,不用再考虑跨浏览器的问题了。但要想正确地使用这个方法,仍然要注意几个问题:
        1、用dojo.byId()获取的是dom元素,而用dijit.byId()获取的是dojo widget,这两点是有根本不同的。
        2、事件名称的大小写很关键,如果对dom元素添加事件处理器,事件名称要小写,例如click事件,可以用click或者on

click都行,但一定要把c字母小写;如果对dojo widget添加事件处理器,事件名称必须符合dojo的规范,例如click事件,一定要写成onClick,字母o是小写,而字母c一定要大写。
        3、如果要对某个页面元素添加事件处理器,一定要根据这个元素是dom元素还是dojo widget,分别使用dojo.byId()或dijit.byId()来获取元素引用。如果乱用,那么结果可能会添加失败或出现不正常的情况。
        注意以上这几个问题,正确使用好dojo.connect()方法是没有问题的。
        例一:
<button id="btn">Click Me!</button>
<script type="text/javascript">
        dojo.connect(dojo.byId(‘btn‘), ‘onclick‘, null, handler);
</script>
        例二:
<button id="btn" dojoType="dijit.form.Button" label="Click Me!"></button>
<script type="text/javascript">
        dojo.connect(dijit.byId(‘btn‘), ‘onClick‘, null, handler);
</script>

-------------------------------------------------------------------------------------------------------

注:本文转载于:http://blog.163.com/[email protected]/blog/static/732525372011101715346673

时间: 2024-10-12 04:36:57

使用dojo.connect()添加事件的注意事项的相关文章

iOS日历相关操作--读取系统日历、添加事件到系统日历

1 读取系统日历 let eventStore = EKEventStore() let tempFormatter = NSDateFormatter() tempFormatter.dateFormat = "dd.MM.yyyy HH:mm" //获取一个时间段中的日历事件 let startDate = tempFormatter.dateFromString("10.08.2016 15:10")! let endDate = tempFormatter.

(原创)EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件

有时候在行编辑的时候,一个编辑框的值要根据其它编辑框的值进行变化,那么可以通过在开启编辑时,找到特定的Editor,为其添加事件 // 绑定事件, index为当前编辑行 var editors = $('#staffLogDetailGrid').datagrid('getEditors', index);     //获得当前行的编辑对象 console.info(editors[5]);  //editor[5]表示第五列这个控件 var sfgzEditor = editors[5];

Unity3D Animator控制参数和添加事件

Animator控制参数和添加事件 using UnityEngine; using System.Collections; public class AniControl : MonoBehaviour { public bool IsRolling = false; public bool IsDead = false; public bool IsJump = false; public float Direction = 0.5f; public Animator Anitor; pub

解决JavaScript中批量添加事件的问题

这是JavaScript中一个老生常谈的问题,也是初学者较难理解的问题.当给一系列元素添加事件时,常常会出现一些我们不希望出现的问题.例如以下代码: //给li元素批量添加click事件 window.onload = function(){ var lists = document.getElementsByTagName("li"); for(var i=0;i<lists.length;i++){ lists[i].onclick = function(){ alert(i

jquery为新增元素添加事件

jquery为新增元素添加事件 默认情况,你使用jquery新增一个元素 ,用class的方法无法绑定事件,需要将绑定的函数放到jquery外面 然后在绑定行内事件 这样就可以绑定了

VC 为静态控件添加事件(修改ID号以后添加事件)

操作系统:Windows 7软件环境:Visual C++ 2008 SP1本次目的:为静态控件添加事件,如:STATIC.Picture Control等等 有时候我们找到一个图片,为对话框背景添加了图片,我们需要在某个位置令其可以单击,如下两图所示: 首先:修改静态控件属性Notify 为True,修改控件ID 号,一定要修改,在这里我改为IDC_RIGHT,右键为静态控件添加左键单击事件,在这里我在代码里面添加了弹出消息对话框以作测试,效果如下: 虽然不是动态的按钮,但是效果蛮不错的. h

给DOM元素添加事件

今天遇到一个问题:鼠标单击页面中的任意标签,弹出该标签的名称. 实现代码如下: <script type="text/javascript"> document.onclick = function(e){ var e = (e||event); var o = e["target"] || e["srcElement"]; alert(o.tagName.toLowerCase()); } </script> 即创建了一

dom添加事件总结

碰到几个问题,总结一下: 什么是事件冒泡 被点击后,由最具体的事件接收,逐级向上传至最不具体的那个节点 事件流 描述页面接收事件的顺序 分为html事件,DOM0级事件,DOM2级事件 DOM 0级与html事件需要加上on,DOM2在非ie下不需要,因为已经有了listen这个监听的东西,在ie下DOM2的attachEvent和detatchEvent需要加上on 注意: Internet Explorer 8 及更早IE版本不支持 addEventListener() 方法,,Opera

EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件

有时候在行编辑的时候,一个编辑框的值要根据其它编辑框的值进行变化,那么可以通过在开启编辑时,找到特定的Editor,为其添加事件 // 绑定事件, index为当前编辑行 var editors = $('#staffLogDetailGrid').datagrid('getEditors', index); console.info(editors[5]); var sfgzEditor = editors[5]; sfgzEditor.target.bind('change',functio