toggle函数不是点击了才调用么?怎么我的初始状态只是一瞬间就被替代了,而且还替换后的样式也不太对

</style><scripttype="text/javascript"src="jquery-1.11.2.js"></script><scripttype="tex... </style> <script type="text/javascript" src="jquery-1.11.2.js"></script> <script type="text/javascript" src="jquery-1.11.2.min.js"></script> <script type="text/javascript"> </script> <title>Document</title></head><body> <div class="SubCategoryBox"> <ul> <li><a href=".">佳能</a><i>(3304)</i></li> <li><a href=".">索尼</a><i>(27220)</i></li> <li><a href=".">三星</a><i>(20808)</i></li> <li><a href=".">尼康</a><i>(17821)</i></li> <li><a href=".">松下</a><i>(12289)</i></li> <li><a href=".">卡西欧</a><i>(8242)</i></li> <li><a href=".">富士</a><i>(14894)</i></li> <li><a href=".">可达</a><i>(14894)</i></li> <li><a href=".">宾得</a><i>(14894)</i></li> <li><a href=".">李光</a><i>(14894)</i></li> <li><a href=".">奥林巴斯</a><i>(14894)</i></li> <li><a href=".">明基</a><i>(14894)</i></li> <li><a href=".">爱国者</a><i>(14894)</i></li> <li><a href=".">其他品牌相机</a><i>(14894)</i></li> </ul> <div class="showmore"> <a href="more.html"><span>显示全部品牌</span></a> </div> </div> <script type="text/javascript"> $(function(){ var $category = $("ul li:gt(5):not(:last)");//选中li元素下标大于5且不是最后一个li $category.hide();//隐藏选中元素 var $toggleBtn = $('div.showmore >a');//显示全部li

$toggleBtn.toggle(function(){ $category.hide();//隐藏选中元素 $(".showmore").css("background",'url("images/down.gif") no-repeat 0 0 '); $(".showmore span").text('显示全部品牌');//修改span的样式和文本 $('ul li').removeClass("promoted"); },function(){ $category.show();//显示隐藏了的li $(".showmore").css("background",'url("images/up.gif") no-repeat 0 0 '); $(".showmore span").text('精简显示品牌');//修改span的样式和文本 $("ul li").filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')").addClass("promoted");//为选中的li增加promoted样式 }); }); </script></body></html>

初始状态
展开
 我来答
下雨天丶宁静
2015-04-01 · TA获得超过121个赞
知道答主
回答量:33
采纳率:0%
帮助的人:38万
展开全部

两个地方要注意哈

第一,你用的jquery.1.11.2.js,jquery从1.9开始就不再支持toggle方法了。你可以试试把你引用jquery的地方删除,换成下面的。

script src="http://libs.baidu.com/jquery/1.8.3/jquery.min.js"></script>

第二,你写反了执行动作。

$toggleBtn.toggle(function(){
                    $category.show();//隐藏选中元素
                    $(".showmore").css("background",'url("images/down.gif") no-repeat 0 0 ');
                    $(".showmore span").text('显示全部品牌');//修改span的样式和文本
                    $('ul li').removeClass("promoted");    
                },function(){
                    $category.hide();//显示隐藏了的li
                    $(".showmore").css("background",'url("images/up.gif") no-repeat 0 0 ');
                    $(".showmore span").text('精简显示品牌');//修改span的样式和文本
                    $("ul li").filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')").addClass("promoted");//为选中的li增加promoted样式
            });

你默认已经隐藏了,所以第一次执行的时候应该先show(),再hide().


另外你在引用jquery的时候引用一个就可以了,有个.min.js的是压缩版,内容是一样的,最好用压缩版,网页加载更快。


你是在看《锋利的jquery》吧。那上面的所以js代码都是基于1.9以下的,要多注意。我也是看那个书学的,写得很好。

huaidandj
推荐于2018-04-12 · TA获得超过150个赞
知道答主
回答量:124
采纳率:0%
帮助的人:74.4万
展开全部

楼主您好,还是我。我特么要疯了,这次再提交不上来就算了,对不住了。度娘太渣。还是那句话,看到了不要采纳我,采纳“下雨天丶宁静”,你没看错,三个号都是我的。另外两个号你都没看到,因为带了链接,百度屏蔽我了。我提交三次了。

答案是这样的:


两个地方要注意哈

第一,你用的jquery.1.11.2.js,jquery从1.9开始就不再支持toggle方法了。你可以试试把你引用jquery的地方删除,换成下面的。(就是因为这个地方,我只能上传图片了,或者你自己下载一个1.8.3的jquery来用)



第二,你写反了执行动作。

$toggleBtn.toggle(function(){
                    $category.show();//隐藏选中元素
                    $(".showmore").css("background",'url("images/down.gif") no-repeat 0 0 ');
                    $(".showmore span").text('显示全部品牌');//修改span的样式和文本
                    $('ul li').removeClass("promoted");    
                },function(){
                    $category.hide();//显示隐藏了的li
                    $(".showmore").css("background",'url("images/up.gif") no-repeat 0 0 ');
                    $(".showmore span").text('精简显示品牌');//修改span的样式和文本
                    $("ul li").filter(":contains('佳能'),:contains('尼康'),:contains('奥林巴斯')").addClass("promoted");//为选中的li增加promoted样式
            });


你默认已经隐藏了,所以第一次执行的时候应该先show(),再hide().


另外你在引用jquery的时候引用一个就可以了,有个.min.js的是压缩版,内容是一样的,最好用压缩版,网页加载更快。


你是在看《锋利的jquery》吧。那上面的所以js代码都是基于1.9以下的,要多注意。我也是看那个书学的,写得很好。



采纳另外一个号,名字叫“下雨天丶宁静”;谢谢了。留个企鹅。不懂请加我 261039475

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式