Функция jQuery css не сохраняет свои изменения

#javascript #jquery #html #css

#javascript #jquery #HTML #css

Вопрос:

У меня есть раздел «панель кнопок», который я хочу показывать только после того, как пользователь нажал на кнопку «настройки». Я установил div панели кнопок для отображения: нет в моем css. К сожалению, при нажатии кнопки настройки div отображается на долю секунды, а затем исчезает. Кто-нибудь знает, почему это может происходить? Мой текущий код:

 $(document).ready(function() {
    $('#settings').on('click', function() {
        $('#button-bar').css('display', 'inline-block');
    });
});
 

Ответ №1:

Проблема в том, что ваш href=»» пуст, он перезагружает страницу. Поместите в них хэштеги. href=»#»

Ответ №2:

 $(document).ready(function() {
    $('#settings').on('click', function() {
        $('#button-bar')show();
    });
});

or maybe

$(document).ready(function() {
        $('#settings').click(function() {
            $('#button-bar')show();
        });
    });
 

Комментарии:

1. Это должно сработать, хотя .css(«»,»») тоже должен работать. Если это не сработает, попробуйте опубликовать скрипку с большим количеством вашего кода, это может быть что-то другое, а не только эта функция.

2. Похоже, у него та же проблема — он отображается на долю секунды сразу после того, как я отпускаю кнопку мыши, а затем исчезает.

3. вы пробовали .click(function() вместо .on(функция «click»() ??

4. У меня есть; у него та же проблема. Мне сказали, что функция .on() была более элегантной, поэтому я пошел с этим.

5. Вам придется опубликовать больше вашего кода в скрипке, в этом не должно быть ничего плохого.

Ответ №3:

Вам нужно добавить «return false;» в конце вашей функции, в противном случае она следует по ссылке html, которая пуста.

(редактировать: href =»#» будет работать, чтобы исправить вашу ошибку, но это также приведет к переходу страницы наверх при нажатии. Возвращаемое значение false; остановит это, если это проблема. )