模仿jQuery's .click()的原生JavaScript方法
Native JavaScript Method that Mimics jQuery's .click()
我最近意识到,在学习使用jQuery编写JavaScript时,我学习了JS语法,但我从未真正学习过JS。所以这里的项目是只使用原生JavaScript模拟jQuery方法。
我从全局窗口对象的一个函数开始,它返回一组我常用的方法:
window.iq = (function(){
return {
id: function(id) {
return document.getElementById(id);
},
// Several other similar methods
})();
那么,现在我可以像这样调用这个方法:
iq.id('elementID') //and so forth
我在写模仿jQuery的.click()
的方法时遇到了麻烦。我可以将点击处理程序附加到一组元素,如下所示:
[].forEach.call(iq.selAll('a'), function(el) { // selAll is the short version of document.querySelectorAll()
el.addEventListener('click', function(){
// do stuff
});
我还没能弄清楚如何编写一个方法来做到这一点,所以每次我想在一个元素或一组元素上触发一个点击事件时,我可以只写:
iq.click('element', function(){
// do stuff
});
这是我的非工作尝试:
click: function(el) {
return [].forEach.call(iq.selAll(el), function(el) {
el.addEventListener('click');
});
}
如往常一样,我非常感谢任何建议或指导。
您的代码缺少click
方法的第二个参数,这是实际的处理程序函数:
click: function(el, handler) {
return [].forEach.call(iq.selAll(el), function(el) {
el.addEventListener('click', handler, false);
});
}
相关文章:
- jQuery $.data() 函数的香草替代品:任何原生 JavaScript 替代品
- 使用原生 JavaScript 防止轮播中的气泡
- 如何在原生 JavaScript Promise 中包装 jsonP 回调
- 在原生JavaScript中获取画布中鼠标位置的最现代方法
- 在原生 Javascript 中查找带有类的元素的索引
- 原生 JavaScript JSON.parse 抛出 typeError
- 原生 JavaScript 在调整大小后获取浏览器宽度,然后运行一个函数
- 使用原生 JavaScript 在过渡中获取 CSS 值
- 如何从 React 原生 JavaScript 语法切换到 ES6
- 在原生 JavaScript 中移动棋子
- j查询 |从jQuery到原生javascript
- 原生 JavaScript 函数是否类似于“超全局”?
- 什么是原生JavaScript语法中的$httpProvider.defaults.headers.common
- jQuery在纯原生javascript中的“on”和“off”
- 使用SeleniumWebDriver和原生javascript来衡量性能
- 浏览器对“数字集市”/“伪造”的支持程度如何?lib(原生JavaScript TLS实现)
- 原生javascript中的ISO日期比较
- 原生javascript点击dom元素
- 如何将jquery ajax转换为原生javascript
- 为什么UnderscoreJS有很多原生Javascript函数的包装函数?