Jquery Draggable +带到前面

时间:2012-09-30 21:48:28

标签: jquery html css jquery-ui

我有一个窗口,其中有许多聊天DIV,用户可以与其他人聊天。

目前,聊天DIV可以打开并移动,但我看不到将当前选择的DIV设置在前面。例如:当你在DIV上徘徊时,它会进入前景。

HTML:

<div id="1000000001" class="chatMessenger">
    <div class="chatMessengerContainer">
        </div>
</div>

CSS:

div.chatMessenger {
    position: absolute;
    top: 50px;
    left: 50px;
    width: 250px;
    height: 300px;
    background-color: white;
    z-index: 100;
    border: 1px solid black;
}

JQUERY:

    // JQUERY UI Draggable - Initialize
    $('div#'+memberID).draggable({
        containment: $('div#chatWrapper')
    });


    // JQUERY UI Draggable - Setting the Stack
    $(document).on('mousedown','div.chatMessenger', function() {
        alert('chat mouse down...');
        //var stack = $( ".selector" ).draggable( "option", "stack" );
        $(this).draggable( "option", "stack", ".products" );
    });

警报在mousedown中触发,因此这是找到正确的元素。

我看过Draggable z-index和stack但是我无法工作。

会有很多聊天DIV同时打开,所选择的人需要坐在前面。

三江源。

4 个答案:

答案 0 :(得分:8)

这应该有帮助

$('div.chatMessenger').not(this).css('z-index', '100');
$(this).css('z-index', '1000');

on('mousedown')函数内。

答案 1 :(得分:2)

对于您想要将其中一个放在前面并将其他人重置为其他几个可拖动的人:

$('.container').on('mousedown', function(event) { 
    $('.container').css('z-index','1');
    $( this ).css('z-index','1000');
});

答案 2 :(得分:0)

我发现最简单的实现是将dom中的div移动到最后一个位置。因此,如果您不必关心dom中的位置,这是不使用z-index的最简单方法。 我用它来定位一些粘滞便笺。

$("#chatWrapper").on('mousedown', '.chatMessenger', function() {
    $(this).appendTo("#chatWrapper");
});

答案 3 :(得分:0)

虽然有一个选项 - 启动可拖动时存在'堆栈' 像这样 -

$('.draggable').draggable({
    stack: ".draggable"
});

但它工作不正常,所以我写了一个小型的文库dragToFront和z-index一起玩。以下是plunkr链接

https://embed.plnkr.co/mJqkxSJhf1Umg7r2oLQN/