錯(cuò)過(guò)了年華
2017-07-29 23:47:12
就是如果一個(gè)個(gè)的設(shè)onclick這些不是很麻煩嗎,所以我就想能不能只調(diào)用一個(gè)函數(shù)就可以完成好幾種變化,點(diǎn)擊背景顏色改變這類樣式變化。
7 回答
已采納

沈流舒
TA貢獻(xiàn)5條經(jīng)驗(yàn) 獲得超0個(gè)贊
建議你去《JavaScript高級(jí)程序設(shè)計(jì)》中看下什么是重載;
如果你不想看,那么推薦你使用jQuery,在JQ中有一個(gè)函數(shù)叫做jQ.on();
方法的使用:
$('選擇器').on({
????'click':function(){
? ? ?????//在這里執(zhí)行你的點(diǎn)擊操作
? ? ?},
????'mouseover':function(){
????????//在這里執(zhí)行你的鼠標(biāo)移入的操作
? ? ?},
????'mouseout':function(){
????????//在這里執(zhí)行你的鼠標(biāo)移出操作
????}
});

跨越七海的_風(fēng)
TA貢獻(xiàn)25條經(jīng)驗(yàn) 獲得超5個(gè)贊
你說(shuō)的這種需求,策略模式是一種很好的應(yīng)對(duì),但是對(duì)于業(yè)務(wù)的擴(kuò)展來(lái)說(shuō),有些時(shí)候還是不足的。
首先,一樓的說(shuō)法必須得以來(lái)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(){ ???????????? ????????????} ????????}); ??? ????}) }
添加回答
舉報(bào)
0/150
提交
取消