Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Всплывающее окно по id (https://javascript.ru/forum/jquery/74964-vsplyvayushhee-okno-po-id.html)

NeonMan 21.08.2018 23:59

Всплывающее окно по id
 
Подскажите пожалуйста, есть область - это path в svg, их несколько разных, для каждой есть всплывающее окно, но как при наведении прописать, что бы для области открывалось конкретное окно (по уникальному id например), а другое окно, открытое до этого из другой области закрывалось (окна сделаны div).

рони 22.08.2018 00:55

NeonMan,
сделайте минимальный макет

NeonMan 22.08.2018 11:06

Поступил таким образом:
$('.country').hover (
function() {
    $('.country-popup').hide();
    $('.country').css('opacity','0');
    $(this).css('opacity','1');
    var activeCountry = $(this).attr('href');
    $(activeCountry).show();          
});

Прописал href в path для id каждого из окон, но правильно ли в path прописывать href, может есть какой-то еще способ для такой ситуации, было бы интересно взглянуть

рони 22.08.2018 11:40

NeonMan,
... ждите телепатов

NeonMan 22.08.2018 13:27

))
вот карта с областями, о которой я писал выше, сделал попапы поведение, код который написал, но есть может какой-то еще способ, ради проф интереса, а то мне кажется прописывать href="" в path svg файла не очень корректно

рони 22.08.2018 16:47

NeonMan,
можно по индексу тогда никаких id не надо совсем

рони 22.08.2018 20:20

NeonMan,
$(function() {
    var country = $(".country"),
        popup = $(".country-popup"),
        btn = $(".country-popup-btn");

    function hide() {
        popup.hide();
        country.css("opacity", "0")
    }
    country.hover(function() {
        hide();
        $(this).css("opacity", "1");
        var activeCountry = country.index(this);
        popup.eq(activeCountry).show()
    });
    btn.click(function(event) {
        event.preventDefault();
        hide()
    })
});

NeonMan 22.08.2018 22:35

Интересная конструкция, спасибо

NeonMan 23.08.2018 22:10

Подскажите такой момент, есть такая структура
$('#kazan').mouseenter (
    function() {
        $('.menu-kazan').css('background', '#CEF5FC');      
});
$('#kazan').mouseout (
    function() {
        $('.menu-kazan').css('background', 'none');
});

Это при наведении на один элемент, подсвечивается другой, и когда курсор уходит с элемента, тому присваивается значение background: none, но потом когда уже навожу непосредсвенно на .menu-kazan больше не срабатывает .menu-kazan:hover {background: цвет} из css. Может есть какой-то другой способ в jquery сделать такую операцию?

рони 23.08.2018 22:31

NeonMan,
цвет нужен - лучше цвет и менять.
Цитата:

Сообщение от NeonMan
Подскажите

уберите none из кода и будет вам счастье.


Часовой пояс GMT +3, время: 15:31.