Показать сообщение отдельно
  #1 (permalink)  
Старый 11.10.2013, 10:29
Интересующийся
Отправить личное сообщение для vladimir7517 Посмотреть профиль Найти все сообщения от vladimir7517
 
Регистрация: 05.10.2013
Сообщений: 26

как остановить функцию?
господа имеется скриптик
который каждые 5 секунд берет с сервера координаты и подставляет их в яндекс карту,координаты берутся по id заказа,при нажатии на заказ выплывает div с картой,но проблема в том что я не могу остановить повтор функции и в карту подставляеется 2 , 3 и тюд заказов и карта начинает тупо моргать,подскажите как остановить данный settimeout когда мне нужно запускать функцию по другому заказу?вот сообственно сам код
function view_map(order_id){
    $('#yandex_map').slideToggle();
    //clearTimeout(id);
    YMaps.load();



    (function worker() {

     $.ajax({
            url: 'now-order-taxi-info.php',
            data: 'order_id='+order_id,
            type: 'GET',
            success: function(xml){


                jQuery(xml).find('data').each(
                    function()
                    {   
                        var driver_timecount = jQuery(this).find('DRIVER_TIMECOUNT').text(),
                            car_mark = jQuery(this).find('CAR_MARK').text(),
                            car_color = jQuery(this).find('CAR_COLOR').text(),
                            gosnumber = jQuery(this).find('GOSNUMBER').text(),
                            is_prior = jQuery(this).find('IS_PRIOR').text(),
                            driver_phone = jQuery(this).find('DRIVER_PHONE').text(),
                            crew_coords = jQuery(this).find('CREW_COORDS').text(),
                            order_state = jQuery(this).find('ORDER_STATE').text();  

                            var a = crew_coords.split(/\s*,\s*/);
                            var asd = [a[1].substr(0,7), a[0].substr(0,7)].join(', ');

                            //var coord = "["+asd+"]";

                            //alert(coord);

                            var map = new YMaps.Map(YMaps.jQuery("#YMapsID")[0],{behaviors:['default', 'scrollZoom']});

                            // Установка для карты ее центра и масштаба
                            map.setCenter(new YMaps.GeoPoint(a[0].substr(0,7),a[1].substr(0,7)), 18);
                                                        // Создает метку, значок которой не скрывается при открытии балуна
                            var placemark = new YMaps.Placemark(new YMaps.GeoPoint(a[0].substr(0,7),a[1].substr(0,7)), {draggable: 0, style: "default#carIcon"});

                            // Добавляет метку на карту
                            map.addOverlay(placemark);
                           
                                            
                    });
            },
            complete: function() {
              setTimeout(worker, 3000);
            }

        });
    })();
Ответить с цитированием