扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
鉴于楼主欠缺编程经验,我就先不说封装成jQuery插件等高大上的做法了。单就论封装成方法而言。
公司主营业务:成都网站建设、成都网站制作、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。成都创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。成都创新互联推出鹤山免费做网站回馈大家。
方法,也就是函数。是面向过程式语言一种代码复用的初级手段,简而言之,就是把重复的部分用函数封装起来。
例如猫叫多遍,cat.meow(), 你总不可能写对应次数的代码,一般会写成:
function meow(num){
for(var i=0;inum;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')
但是这样还是不够通用,楼主应该看看事件方面有关事件委托的知识
没有详细的代码,不过可以给你思路。
给每个拥有相同行为的问题DOM节点一个相同的class类,如question,同时给不同的问题一个不同的标识ID如 id="question1" id="question2"...诸如此。
给类.question绑定点击事件,在触发函数里面先判断当前点击的这个类的id,即可知道你要操作的是哪一个问题,然后调用你的那个伸缩函数即可。
举个最简单的例子:
计算两个数字的和。
function test(a,b){
return a+b;
}
console.log(test(1,2));
console.log(test(5,6));
意思就是说 写一个通用的方法来避免每次重复写大段的代码。
var为variable的缩写,即变量的意思,在JS中用关键字var声明变量。var x = 3;为声明了一个变量,变量名为x,值为3。可以没有赋值只声明变量,此时没有等号。故你给出的语句应该是不完整的。
双斜线//为JS中的单行注释。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流