首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > JavaScript >

帮小弟我改进一上这个jquery代码

2012-09-24 
帮我改进一下这个jquery代码我做了一个jquery效果,点击下拉,显示更多,同时下拉按钮变向上按钮,点击隐藏。具

帮我改进一下这个jquery代码
我做了一个jquery效果,点击下拉,显示更多,同时下拉按钮变向上按钮,点击隐藏。具体效果见我博客右边栏:http://tanteng.sinaapp.com

我右边有三个这样的效果,我定义三个不同的id,所以写jqeury基本都是分别写同样的效果,能不能用一种方法写到一起呢??

html代码:

PHP code
    <div class="widget" id="diary1">        <h3><?php _e('Random Posts', 'zbench'); ?></h3>        <ul>            <?php            $rand_posts = get_posts('numberposts=16&orderby=rand');            foreach( $rand_posts as $post ) :            ?>            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>            <?php endforeach; ?>        </ul>        <span class="more_article1"><a href="#"><img src="http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png"></a></span>    </div><?php } ?>    <!--显示个人日志-->    <div class="widget" id="diary2">        <h3>个人日志</h3>        <ul>            <?php            $person_posts = get_posts('numberposts=16&category=5');            foreach( $person_posts as $post ) :            ?>            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>            <?php endforeach; ?>        </ul>        <span class="more_article2"><a href="#"><img src="http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png"></a></span>    </div>    


jquery代码:
JScript code
    <!--显示和隐藏效果-->    <script type="text/javascript">      $(document).ready(function(){              var $hiden1=$("#diary1 ul li:gt(7)");            var $hiden2=$("#diary2 ul li:gt(7)");            var $hiden3=$("#diary3 ul li:gt(7)");              $hiden1.hide();            $hiden2.hide();            $hiden3.hide();            var $more1=$(".more_article1");            var $more2=$(".more_article2");            var $more3=$(".more_article3");            $(".more_article1,.more_article2,.more_article3").mouseover(function(){                $(this).addClass("more_color").mouseout(function(){                    $(this).removeClass("more_color");                });            });            $more1.toggle(function(){                $hiden1.show();                $(".more_article1 img").attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_up.png");            },function(){                $hiden1.hide();                $(".more_article1 img").attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png");            });            $more2.toggle(function(){                $hiden2.show();                $(".more_article2 img").attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_up.png");            },function(){                $hiden2.hide();                $(".more_article2 img").attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png");            });            $more3.toggle(function(){                $hiden3.show();                $(".more_article3 img").attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_up.png");            },function(){                $hiden3.hide();                $(".more_article3 img").attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png");            });            return false;      });    </script> 



[解决办法]
HTML code
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><title>状态切换</title><meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /><script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script><title>expl</title><script type="text/javascript">$(function(){    var _hide=$(".widget ul");//    _hide.each(function(){        $(this).find("li:gt(7)").hide();//8行以后默认隐藏                //获取 隐藏/显示 操作对象        var _more=$(this).parent().find(".more_article");        _more.bind({            "mouseover":function(){                $(this).addClass("more_color");            },            "mouseout":function(){                $(this).removeClass("more_color");            },            "click":function(){                var o=$(this).parent().find("ul li:gt(7)");//将操作对象指回其父级,并查找其下的ul中第8行以后的li                var _img=$(this).find("img");//获取隐藏/显示 操作点的图片                if(o.is(":hidden")){                    o.show();                    _img.attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_up.png");                }else{                    o.hide();                    _img.attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png");                }            }        })    })            return false;});</script></head><body><div class="widget">        <h3>随机文章</h3>        <ul>            <li><a href="#">1</a></li>           <li><a href="#">2</a></li>           <li><a href="#">3</a></li>           <li><a href="#">4</a></li>           <li><a href="#">5</a></li>           <li><a href="#">6</a></li>           <li><a href="#">7</a></li>           <li><a href="#">8</a></li>           <li><a href="#">9</a></li>           <li><a href="#">10</a></li>           <li><a href="#">11</a></li>           <li><a href="#">12</a></li>           <li><a href="#">13</a></li>           <li><a href="#">14</a></li>           <li><a href="#">15</a></li>        </ul>        <span class="more_article"><a href="#"><img src="http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png"></a></span>    </div>    <!--显示个人日志-->    <div class="widget">        <h3>个人日志</h3>        <ul>             <li><a href="#">日志1</a></li>           <li><a href="#">日志2</a></li>           <li><a href="#">日志3</a></li>           <li><a href="#">日志4</a></li>           <li><a href="#">日志5</a></li>           <li><a href="#">日志6</a></li>           <li><a href="#">日志7</a></li>           <li><a href="#">日志8</a></li>           <li><a href="#">日志9</a></li>           <li><a href="#">日志10</a></li>           <li><a href="#">日志11</a></li>           <li><a href="#">日志12</a></li>           <li><a href="#">日志13</a></li>           <li><a href="#">日志14</a></li>           <li><a href="#">日志15</a></li>        </ul>        <span class="more_article"><a href="#"><img src="http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png"></a></span>    </div>    <div class="widget">        <h3>链接</h3>        <ul>            <li><a href="http://lanmei.sinaapp.com/" target="_blank">蓝莓&#039;s Blog</a></li>            <li><a href="http://tiaopigui.com/" target="_blank">调皮鬼</a></li>            <li><a href="http://www.phplu.com/" target="_blank">程程</a></li>            <li><a href="http://www.zhangby.com/" target="_blank">张无计</a></li>            <li><a href="http://mulone.net/" target="_blank">涵の沐</a></li>        </ul>    </div></body></html> 


[解决办法]
这样写什么意思,jqeury声明变量不是要加“$”吗?这样才是jqeury对象,才能使用jqeury的方法。

申明变量不一定要加$的。$(function(){})这个$才是你说的意思
$(function(){
var _hide=$(".widget ul");//这就是得到了所有class="widget"的容器下ul的对象集合
_hide.each(function(){//注意这里用了each,循环体,遍历的意思
//_hide是对象集合,那么,在这里通过$(this)就可以得到其中的一个元素,以你的例子来说,就是
//先得到:随机文章,再得到:个人日志
$(this).find("li:gt(7)").hide();//8行以后默认隐藏

//获取 隐藏/显示 操作对象
var _more=$(this).parent().find(".more_article");
_more.bind({//这里的bind()事件绑定方法同样,也内置一个和前面each一样的遍历在,所以也可以从对象集合中取出单独的元素来
"mouseover":function(){
$(this).addClass("more_color");
},
"mouseout":function(){
$(this).removeClass("more_color");
},
"click":function(){
var o=$(this).parent().find("ul li:gt(7)");//将操作对象指回其父级,并查找其下的ul中第8行以后的li
var _img=$(this).find("img");//获取隐藏/显示 操作点的图片
if(o.is(":hidden")){
o.show();
_img.attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_up.png");
}else{
o.hide();
_img.attr("src","http://tanteng.sinaapp.com/wp-includes/images/widget_btn_down.png");
}
}
})
})



return false;
});
</script>

热点排行
Bad Request.