toggle函数不是点击了才调用么?怎么我的初始状态只是一瞬间就被替代了,而且还替换后的样式也不太对
$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>
初始状态 展开
两个地方要注意哈
第一,你用的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以下的,要多注意。我也是看那个书学的,写得很好。
楼主您好,还是我。我特么要疯了,这次再提交不上来就算了,对不住了。度娘太渣。还是那句话,看到了不要采纳我,采纳“下雨天丶宁静”,你没看错,三个号都是我的。另外两个号你都没看到,因为带了链接,百度屏蔽我了。我提交三次了。
答案是这样的:
两个地方要注意哈
第一,你用的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