谁可以详细解释一下以下这段代码的具体意思,刚学JS,所以挺多都看不懂。是一个下拉导航的效果

<scripttype=text/javascript><!--//--><![CDATA[//><!--functionmenuFix(){varsfEls=docum... <script type=text/javascript><!--//--><![CDATA[//><!--
function menuFix() {
var sfEls = document.getElementById("nav").getElementsByTagName("li");
for (var i=0; i<sfEls.length; i++) {
sfEls[i].onmouseover=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onMouseDown=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onMouseUp=function() {
this.className+=(this.className.length>0? " ": "") + "sfhover";
}
sfEls[i].onmouseout=function() {
this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"),

"");
}
}
}
window.onload=menuFix;

//--><!]]></script>
可以特别解释一下这两句吗,1. this.className+=(this.className.length>0? " ": "") + "sfhover";
2. this.className=this.className.replace(new RegExp("( ?|^)sfhover\\b"),
展开
 我来答
花石零元购
2012-06-12 · TA获得超过160个赞
知道小有建树答主
回答量:192
采纳率:100%
帮助的人:113万
展开全部
加载完后执行JS方法menuFix
menuFix方法,先找到Id为nav的,然后找到里面的所以li标签
li标签集合循环
保定各种鼠标事件onmouseover,onMouseDown,onMouseUp,onmouseout
事件意思(就是英文单词的意思)里面执行的都是更换li标签的class样式
zhangmingpeilh
2012-06-12 · 超过14用户采纳过TA的回答
知道答主
回答量:205
采纳率:0%
帮助的人:79.6万
展开全部
ID为nav下的所有li子标签里鼠标移开时class为原来的class名字加sfhover,如果原来有则中间加个空格!其他依次类推!页面加载的时候调用次函数! 这样写估计你就看懂了
var str = this.className;
if(str.length>0){
str = str + " " + "sfhover"
}else {
str = "sfhover"
}
你程序里面那是个三元表达式和上面的意思一样
第二个是正则表达式所有的className必须以sfhover开头\b是啥意思忘了去查下就知道了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
阿刚炖蛋
2012-06-22 · TA获得超过3004个赞
知道大有可为答主
回答量:1789
采纳率:92%
帮助的人:967万
展开全部
总结一下:
第一句:判断原来是否有className,没有的话添加一个sfhover,有的话就追加一个sfhover到className当中去,与之前的className中间会使用 "空格" 来分隔。

第二句:替换当前的className,将sfhover使用""来替换,即清除sfhover。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式