本帖最后由 Sunhk_25 于 2014-10-31 13:52:01 编辑

解决方案 »

  1.   

    明显不一样啊。。
    slideTicker(".panel-list div:first", ".panel-list");
    slideTicker2($(".panel-list div:first"));第一个会获取父对象下的第一个div进行操作,第二个你传递对象进去永远操作的就是这个对象了第一个不用传递2个参数,传递一个就行了    function slideTicker(str, str2) {
            function tick() {
                $(str).slideUp(function() {
                    $(this).appendTo($(this).parent()).slideDown();
                });
            }
            setInterval(tick, 2000);
        }
    slideTicker(".panel-list div:first");
      

  2.   

    slideTicker确实用第一个就可以。在这里可以通过字符串实例化DOM,并正常取得parent。
    slideTicker2中我想直接传递对象,然后找parent,想知道为什么不行。
      

  3.   

    不是找不到parent,是传递对象进去后,始终操作的都是这个对象,没有更换过对象第一种是选择器,会重新获取第一个div对象,由于你将操作的对象append到了最后,所以操作的对象已经更换过了。
     function slideTicker2(obj) {
            function tick() {
                obj.slideUp(function() {
                    $(this).appendTo(obj.parent()).slideDown();
                });
            }
            setInterval(tick, 2000);
        }一定要传递对象进去,你要更新obj的指向    function slideTicker2(obj) {
            function tick() {
                obj.slideUp(function() {
                    obj.appendTo(obj.parent()).slideDown(function(){obj=obj.parent().find('div:first')});
                });
            }
            setInterval(tick, 2000);
        }
      

  4.   

    赞一个,明白了
    最后我改成了slideTicker(obj, str),其中的str用来指定选择器