Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.11.2020, 19:33   #1
nighty386
Новичок
Джуниор
 
Регистрация: 07.11.2020
Сообщений: 1
По умолчанию отмена функции при повторном клике

Добрый вечер! помогите разобраться , есть карта метро и счестчик metromap-count когда выделяешь станцию он ее считают и записывает как 1 , но если нажать повторно он убирает выделение станции а счетчик становится 2 , два скрина есть и код , хелпп. При выделении html присваивает station selected
Код:
function in_array(needle, haystack, strict)
{
    var found = false, key, strict = !!strict;
    for (key in haystack) {if ((strict && haystack[key] === needle) || (!strict && haystack[key] == needle)) {found = true;break;}}
    return found;
}
/**/

function metromapGroup(groupID)
{
    $("#metromap-loader").stop().animate({opacity: "1"}, 500, function()
    {
        var iC = parseInt(metromap_stationgroups[groupID].length),
            i = 0;

        $.each(metromap_stationgroups[groupID], function(k,id)
        {
            i++;

            if (!in_array(id, metromap_selected))
            {
                $("#metromap-map .station[data-id="+id+"]").addClass('selected');
                metromap_selected.push(id);
            }

            if (iC==i) 
            {
                metromapSync();
                $("#metromap-loader").animate({opacity: "0"}, 500);
            }
        });
    });

    return false;
}

function metromapShow()
{
    $('body').addClass('metromap-body')
    $("#metromap").show();
    return false;
}

function metromapHide()
{
    $('body').removeClass('metromap-body')
    $("#metromap").hide();
    return false;
}

function metromapClear()
{
    metromap_selected = [];

    $("#metromap-cont").html('');
    $("#metromap-clear").hide();
    $("#metromap-map .station").removeClass('selected');
    $("#metromap-count").text(0);
}

function metromapSync()
{
    _metromapVisual();

    if (parseInt(metromap_selected.length)>0) 
    {
        $("#metromap-clear").show();

        if (!$("#filter-btn-more").hasClass('hided')) $("#filter-btn-more").trigger('click');
    }
    else $("#metromap-clear").hide();

    $("#metromap-count").text(parseInt(metromap_selected.length));
}

function metromapInit(url)
{
    $.ajax({url: url, crossDomain:true, dataType:'html', cache: false}).done(function(html)
    { 
        $("#metromap").html(html);

        metromapSync();
        $.each(metromap_stations,function(id,station)
        {
            var html_class = !in_array(id, metromap_selected) ? "station" : "station selected";
        
            $('<div class="'+html_class+'" style="top:'+station.y+'px;left:'+station.x+'px" data-id="'+id+'">'+station.html+'</div>').appendTo("#metromap-map");
        });
    });
}

$(document).on('keydown', function(e) { if(e.keyCode==27) metromapHide(); });
$(document).on('click', '#metromap-bg', function() { return metromapHide(); });

$(document).on('click', '#metromap-map .station', function()
{
    $(this).toggleClass('selected');

    metromap_selected.push($(this).attr('data-id'));

    metromapSync();
    
    return false;
});
Изображения
Тип файла: jpeg 1.jpeg (30.2 Кб, 6 просмотров)
Тип файла: jpeg 2.jpeg (20.8 Кб, 6 просмотров)
nighty386 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прошу помощи при выборе Алекс51 Общие вопросы по программированию, компьютерный форум 0 04.11.2020 03:35
Ошибка при вызове функции Voldemus_ Общие вопросы по программированию, компьютерный форум 13 08.10.2020 19:29
Смена картинки при наведении курсора Николай70 HTML и CSS 4 28.09.2020 18:39
Открыть программу при повторном клике по ярлыку Shouldercannon Общие вопросы Delphi 4 08.12.2018 07:57
Перекрытие вариабл при повторном вызове функции KOTBASILIO JavaScript, Ajax 0 18.07.2011 19:09