Как синхронно вызвать события перетаскивания на клонированном элементе? - PullRequest
0 голосов
/ 06 сентября 2011

Мне нужно перетащить клонированный элемент, но я не понимаю, как вызывать события триггера синхронно

мой пример : http://jsfiddle.net/CfSMG/4/

правильный пример : http://jqueryui.com/demos/droppable/#photo-manager

До: Спасибо за все, что я решил проблема уже

1 Ответ

0 голосов
/ 06 сентября 2011

Мое решение:

$('#move').mousedown(function(event) {
    var offset =  $(this).offset(),
        map = {
            position: 'absolute',
            top : offset.top + 'px',
            left : offset.left + 'px',
            zIndex : 100
        };

    if($('.foo')[0]) return this;

    $(this).clone().bind('mousedown mousemove', function(event) {
        var _this = $(this),
            offset = _this.position(),
            _event = event;

        $(document).bind({
             mousemove : function(event) {
                 var axis = function(i) {
                     var page = {
                         top : 'pageY',
                         left : 'pageX'
                     }[i];
                     return event[page] - (_event[page] - offset[i]) + 'px';
                 };
                _this.css({
                    left : axis('left'),
                    top : axis('top')
                }).unbind('mousemove');
              },
             mouseup : function() {
                _this.animate(map, function() {
                    $(this).remove();
                });
                $(this).unbind('mousemove');
             }
        });
    }).addClass('foo').css(map).appendTo('body');

    event.preventDefault();
    event.stopPropagation();
});

Демонстрационная версия: jsFiddle

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...