就是如果一个个的设onclick这些不是很麻烦吗,所以我就想能不能只调用一个函数就可以完成好几种变化,点击背景颜色改变这类样式变化。
7 回答
已采纳
沈流舒
TA贡献5条经验 获得超0个赞
建议你去《JavaScript高级程序设计》中看下什么是重载;
如果你不想看,那么推荐你使用jQuery,在JQ中有一个函数叫做jQ.on();
方法的使用:
$('选择器').on({
'click':function(){
//在这里执行你的点击操作
},
'mouseover':function(){
//在这里执行你的鼠标移入的操作
},
'mouseout':function(){
//在这里执行你的鼠标移出操作
}
});
跨越七海的_风
TA贡献25条经验 获得超5个赞
你说的这种需求,策略模式是一种很好的应对,但是对于业务的扩展来说,有些时候还是不足的。
首先,一楼的说法必须得以来jQuery,在不依赖jQuery的前提下
我给出我的做法吧。
HTMLDOcument.prototype.getElementsByAttribute=function(attr){ var result=[]; var eles=document.getElementsByTagName("*"); for(var i=0;i<eles.length;i++){ if(eles[i].hassAttribute(attr)){ results.push(eles[i]); } } return results; }; function strategyMethodBind=function(srcElem,eventTypes){ for(var item in eventTypes){ srcElem.addEventListener(eventTypes[item].type, eventTypes[item].handler,false); } } window.onload=function(){ [...document.getElementsByAttribute('strategy')].forEach(x=>{ strategyMethodBind(x,{ type:"click", handler:function(){ } }); }) }
添加回答
举报
0/150
提交
取消