jquery的事件处理
原生
//html <button id="btn">按钮</button> //js document.getElementById(‘btn‘).onclick = clickCheckboxCallback; function clickCheckboxCallback(event) { var e = event || window.event; var target = e.target || e.srcElement; if (target.nodeName === ‘BUTTON‘) { alert(‘yuansheng ok‘); } else { alert(‘yuansheng fail‘); } }
此处 event、e 为 MouseEvent,target为button#btn
-----------------------------------------------------------------
jquery
//html <button id="btn">按钮</button> //js $(‘#btn‘).on(‘click‘, clickCheckboxCallback); function clickCheckboxCallback(event) { var target = event.target; if ($.nodeName(target, ‘button‘)) { alert(‘jquery ok‘); } else { alert(‘jquery fail‘); } }
此处 event为m.Event(jquery对象), target为button#btn
-------------------------------------------------------------
总结:jquery和原生js绑定事件的不同在于
1. 绑定方式
js为 dom.onclick = fn; jquery为$(‘#dom‘).on(‘click‘, fn);
2. 兼容处理
js 要经过 兼容处理,如下
var e = event || window.event; var target = e.target || e.srcElement;
jquery不用处理,只需要直接用event或者event.target,如下
var target = event.target;
*jquery 和 原生js的event不一样,但target都是一样的
3.对nodeName的判断,二者区别在上面的代码上可以看到
---------------------------------------------------------------------------
* Q:如何理解$符号?
A:直接写在$上的函数都只支持dom对象
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。