-8

我希望 4 divs 出现。当我单击任何一个divs 时,我希望它div移到最后。

因此,例如,如果单击第一个 div,它应该成为最后一个 div。

的HTML:

<a href='#'><div id="pop0" class="pop"></div></a>
<a href='#'><div id="pop1" class="pop"></div></a>
<a href='#'><div id="pop2" class="pop"></div></a>
<a href='#'><div id="pop3" class="pop"></div></a>

CSS:

#pop0 {
    width: 100px;
    height: 100px;
    background: yellow;
    position: relative;
}
#pop1 {
    width: 100px;
    height: 100px;
    background: red;
    position: relative;
}
#pop2 {
    width: 100px;
    height: 100px;
    background: blue;
    position: relative;
}
#pop3 {
    width: 100px;
    height: 100px;
    background: green;
    position: relative;
}

jQuery:

var id = "pop0";
$(".pop").bind('click', function(){
    var oldId = $(this).attr('id');
    $(this).attr('id', id);
    id = oldId;
})

演示

4

3 回答 3

2

试试这个代码

JS

$(".pop").on('click', function() {
    // Get the closest anchor container
    var $a =$(this).closest('a');
    // Insert after the last anchor container
    $a.insertAfter('a:last')
})

bindon. 使用它来绑定事件处理程序。

通过不重复相同的样式,您的 html 也可以稍微清理一下。将常用样式移至同一类。

CSS

.pop{
    width: 100px;
    height: 100px;
    position: relative;
}

#pop0 {
    background: yellow;
}
#pop1 {
    background: red;
}
#pop2 {
    background: blue;
}
#pop3 {
    background: green;
}

检查小提琴

于 2013-08-09T17:30:52.210 回答
1

使用你的代码很糟糕,因为你没有任何 DOM 包装器元素......(除了正文)

$(".pop").bind('click', function(){
    $('body').append($(this).parent());
})

演示

于 2013-08-09T17:30:32.490 回答
1

也许只是分离项目并将其附加到容器的末尾?

$(document).on('click','.pop',null,function(){
    var $pop = $(this);
    var $parent = $pop.parent();
    $pop.detach();
    $parent.append($pop);
});

http://jsfiddle.net/rtpt5/3/

于 2013-08-09T17:31:22.203 回答