新手请教,如何将一段JS代码封装成一个方法

 我来答
东坡下载站
2018-12-04 · 最新优质手游软件资源下载
东坡下载站
东坡下载是一个专业的无毒的免费的软件资源网站
向TA提问
展开全部

鉴于楼主欠缺编程经验,我就先不说封装成jQuery插件等高大上的做法了。单就论封装成方法而言。

方法,也就是函数。是面向过程式语言一种代码复用的初级手段,简而言之,就是把重复的部分用函数封装起来。

例如猫叫多遍,cat.meow(), 你总不可能写对应次数的代码,一般会写成:


function meow(num){
    for(var i=0;i<num;i++){
        cat.meow()
    }
}
meow(1000)

这就是一种最基础的代码复用。

当然,面向对象的语言也许有更简单的 cat.meow(1000)

那么,针对楼主的情况。逐步讲一下各层次的方法。最简单的用函数封装一下就是:

function effect(srcDom,destDom,className){
    $(srcDom).mouseenter(function(){
        $(destDom).addClass(className)
    }).mouseout(function(){
        $(destDom).removeClass(className)
    })
}

然后调用

effect('#plate-1','#plate-1hover','plate-1after')
effect('#plate-2','#plate-2hover','plate-2after')
effect('#plate-3','#plate-3hover','plate-3after')

鉴于楼主的DOM的ID和Class命名比较有规律,可以写成这样


function effect(name){
    $('#'+name).mouseenter(function(){
        $('#'+name+'hover').addClass(name+'after')
    }).mouseout(function(){
        $('#'+name+'hover').removeClass(name+'after')
    })
}

然后调用

effect('plate-1')
effect('plate-2')
effect('plate-3')

但是这样还是不够通用,楼主应该看看事件方面有关事件委托的知识

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式