Можно ли изменить z-индекс перетаскиваемых элементов при mousedown? - PullRequest
0 голосов
/ 12 декабря 2010

Я обнаружил, что stack option из JQuery UI draggable было очень полезно, но оно работает только при перетаскивании элементов. Так что я могу изменить stack value элементов, которые можно перетаскивать только тогда, когда я **click the elements** или with the mousedown event ??

Большое спасибо ~~ !!

Способ, которым перетаскиваемый плагин изменяет порядок стека перетаскиваемых элементов [z-index], - перетаскивание и перемещение элемента. Если щелкнуть только перетаскиваемый элемент, он не изменит порядок стека. И я хочу, чтобы он изменить, когда я нажму.

Ответы [ 4 ]

0 голосов
/ 12 марта 2013

Поскольку я нашел этот вопрос во время поиска, я решил опубликовать найденный ответ. Причина, по которой щелчок не меняет z-индекс, заключается в том, что перетаскивание еще не началось. Чтобы принудительно инициировать перетаскивание на всех щелчках, установите для параметра расстояния значение 0:

.

http://docs.jquery.com/UI/Draggable#option-distance

Поведение почти такое же, как по умолчанию, за исключением того, что теперь z-порядок изменяется даже без движения мыши.

0 голосов
/ 12 декабря 2010

Примечание См. Мой комментарий к вашему вопросу, я думаю, что оба раза, когда я писал ниже, я неправильно понял.


Если вы хотите убедиться, что элемент, который выВы перетаскиваете всегда выше всего остального во время перетаскивания, вы можете установить z-index в селекторе, который соответствует вашему перетаскиваемому классу ui-draggable-dragging.Пользовательский интерфейс jQuery добавляет этот класс к элементу, который перетаскивается во время операции перетаскивания.

Например, предположим, вы перетаскиваете интервалы, которые находятся внутри элемента div с именем foo.CSS будет выглядеть так:

#foo span.ui-draggable-dragging {
    z-index: 1000 !important;   /* Sadly, you may need the !important */
}

Живой пример

Поскольку класс добавляется только во время перетаскивания, это значение z-index будет действовать только во время перетаскивания.,См. «Обзор» в документах .

Редактировать : ... с помощью опции zIndex ( живой пример ).

0 голосов
/ 13 августа 2011

Вы можете поместить следующий код после перетаскиваемого плагина ( jsfiddle ):

(function ($) {
    var _create =  $.ui.draggable.prototype._create;

    $.ui.draggable.prototype._create = function () {
        var self = this;

        self.element.mousedown(function (e) {
            self._mouseStart(e);
            self._trigger('start', e);
            self._clear();
        });

        _create.call(self);
    };
})(jQuery);

Или, возможно, вы захотите сделать его отдельным параметром следующим образом (jsfiddle ):

(function ($) {
    $.ui.plugin.add('draggable', 'increaseZindexOnmousedown', {
        create: function () {
            this.mousedown(function (e) {
                var inst = $(this).data('draggable');
                inst._mouseStart(e);
                inst._trigger('start', e);
                inst._clear();
            });
        }
    });
})(jQuery);
0 голосов
/ 12 декабря 2010

Это у вас не работает?

$(element).mousedown(function(){
    ...
})
...