首页 > jquery动态each

jquery动态each

比如DOM结构是ul>li*n
而li是后来ajax动态加载来的
比如我需求是根据li是否被赞过,如果赞过把当前li的背景变为红色
现在如果直接$('ul>li').each(function(){})肯定是不行的
必须事件委托但是事件委托的event只有click这些啊,没有each。。该怎么写?
理想情况是$('ul').on('each','li',function(){})
现在有种方案是在ajax success回调中写each,但是只有这种吗?想用第一种或其他
谢谢了!
ps:手机网站码字真痛苦。。。。


http://jsbin.com/wanuxilage/edit?html,output

代码如下:

<!doctype html>
<html lang="en">
<head>
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
    <meta charset="UTF-8">
    <style>
        .z{color: #f00;}
    </style>
</head>
<body>
        <ul id="test">
            <li>1</li><li>2</li><li>3</li><li>4</li>
        </ul>

        <script type="text/javascript">
            //绑定自定义事件, 名字为 update (此处只为演示, 名字可以按自己的喜好起...)
            $('#test').on('update', function(){
                $('li', this).each(function(li){
                    li = $(this);

                    if(li.hasClass('z')){//已经被赞过的
                        return;
                    }

                    if((li.text()*1) % 2 === 1){//此处只是例子,用于如果该li里面的是奇数,则认为是赞过的, 加样式
                        li.addClass('z');
                    }
                });
            }).trigger('update');//顺便触发一下更新目前li的状态


            //模拟ajax请求
            setTimeout(function(){
                $('#test').append('<li>5</li><li>6</li><li>7</li><li>8</li>').trigger('update');//数据追加上之后,触发自定义事件,更新目前所拥有的li的状态
            }, 2000);
        </script>
</body>
</html>
【热门文章】
【热门文章】