Клуб API Карт

Перетаскивание пользовательского объекта-оверлея

stokd
25 ноября 2010, 02:52
Здравствуйте. Подскажите, пожалуйста: как лучше всего реализовать перетаскивание пользовательского объекта-оверлея по карте? Может есть готовое решение?


Каркас объекта:

    function place_marker(item) {
   
        // Получаем ссылку на DOM-узел метки и заполняем её.
        function getElement() {
       
            var element = YMaps.jQuery('...');
               
            // При клике, вызываем функцию открытия окошка.
            element.bind('click', function () {
                ...
            });
           
            // Переопределяет метод после первого вызова, чтобы не создавать DOM-узел дважды
            return (getElement = function () {return element})();
        }
       
        // Вызывается при обновлении карты.
        this.onMapUpdate = function () {
            ...
        };
       
        // Вызывается при добавления метки на карту.
        this.onAddToMap = function(pMap, parentContainer) {
            ...
        };
       
        // Вызывается при удаление метки с карты.
        this.onRemoveFromMap = function () {
            ...
        };   
    }
2 комментария
Подписаться на комментарии к посту
делать внешним классом в который передаете да, див плейсмарка.
Можно обычным jQuery-ui( да теперь наконец-то, уже полгода это можно - передать passEvents в консруктор карты )

Личто я делал через примеси классов
Спасибо. Я сделал без jquery-ui
Внутри класса объекта-оверлея отслеживаю mousedown, mousemove и mouseup:
    element.bind('mousedown', function(e) { ... });
    element.bind('mousemove', function(e) { ... });
    $(document).bind('mouseup', function() { ... });
И, если посмотреть урок: http://javascript.ru/ui/draganddrop ,
то будет понятно, что делать далее.