Как динамически изменять цвет диалогового окна? - Бутбокс

Чтобы изменить текст в диалоговом окне Бутбокс, я использую <span id='someID'></span>, а затем использую jQuery следующим образом: $("#someID").text("The new Text");

Проблема, с которой я столкнулся, заключается в том, как изменить цвет диалогового окна?

Внутри моего диалога у меня есть следующее (чтобы установить цвет диалога):

className: "modal-danger nonumpad",

Я хочу изменить имя класса на modal-success nonumpad при выполнении действия.

Вот мой код:

callDialog = bootbox.dialog({
    className: "modal-danger nonumpad", // the class I want to change
    closeButton: false,
    animate: true,
    title: 'Making Call',
    message: '<div class = "text-center"><i class = "fa fa-spin fa-spinner"></i><span id = "test"> Waiting for Reply... </span></div>',
    onEscape: null,
    buttons: {
        hangup: {
            label: "<span id='hangup' <i class=\"fa fa-phone\"></i> Cancel </span>",
            className: "btn-warning btn-lg pull-left",
            callback: function(){
                $("#dynamicMsg").text("This is dynamic msg");
                return false;
            }
        }
    }
});

callDialog.init(function(){
    peer.on('connection', function(conn) {
        conn.on('data', function(data){
    // Will print 'hi!'
        call = data;
        console.info(call);
        if (call == "ACCEPT"){
            $("#test").text("This is dynamic msg");
            $("#hangup").text("Hangup");
        } else {

        }
    });
    });
});

Как я могу изменить className внутри функции init()?

ПРИМЕЧАНИЕ:<span id='someID'></span> не работает.

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
Улучшение производительности загрузки с помощью Google Tag Manager и атрибута Defer
В настоящее время производительность загрузки веб-сайта имеет решающее значение не только для удобства пользователей, но и для ранжирования в...
Безумие обратных вызовов в javascript [JS]
Безумие обратных вызовов в javascript [JS]
Здравствуйте! Юный падаван 🚀. Присоединяйся ко мне, чтобы разобраться в одной из самых запутанных концепций, когда вы начинаете изучать мир...
Система управления парковками с использованием HTML, CSS и JavaScript
Система управления парковками с использованием HTML, CSS и JavaScript
Веб-сайт по управлению парковками был создан с использованием HTML, CSS и JavaScript. Это простой сайт, ничего вычурного. Основная цель -...
JavaScript Вопросы с множественным выбором и ответы
JavaScript Вопросы с множественным выбором и ответы
Если вы ищете платформу, которая предоставляет вам бесплатный тест JavaScript MCQ (Multiple Choice Questions With Answers) для оценки ваших знаний,...
1
0
215
4

Ответы 4

Ты можешь попробовать:

$("#someID").removeClass('modal-danger').addClass('modal-success');

SomeID должен быть идентификатором вашего диалога. Или, если у вас несколько или он динамический, вместо этого укажите имя класса.

$(".someClass").removeClass('modal-danger').addClass('modal-success');

не могли бы вы подсказать, чем заменить someID? потому что способ, которым я создаю диалог, отличается, поскольку он показан в вопросе без идентификатора

sourceplaze 24.03.2018 01:24

Поскольку у вас есть ссылка на ваш диалог, примерно так должно работать, используя toggleClass:

callDialog.find('.modal-danger').toggleClass('modal-danger modal-success');

Это найдет дочерний элемент с классом modal-danger, а затем удалит его при добавлении класса modal-success.

Спасибо за ваш ответ. Я попробовал ваше решение, оно не помогло мне

sourceplaze 24.03.2018 11:55

can you please guide what to replace someID with? because the way i am creating the the dialog is different as it is shown in the question with no ID

Отвечая на ваш вопрос с комментарием, вы должны заменить его любым отдельным селектором, который у вас есть для элемента, который вы хотите изменить. Если это всего лишь один элемент, вы можете подумать о присвоении ему идентификатора. В зависимости от того, где вы вызываете это, вы можете определить свой селектор с помощью event.currentTarget, или, если в этот момент есть только этот элемент с этими классами "modal-danger nonumpad", вы также можете использовать его в качестве селектора.

Попробуй это: $(callDialog).removeClass('modal-danger').addClass('modal-success');

$(callDialog) выбирает переменную, которой был назначен объект диалога загрузочного окна, и превращает ее в Объект JQuery.

.removeClass('modal-danger') - это JQuery метод для удаления класса, переданного в качестве параметра из выбранного объекта.

.addClass('modal-success') также является JQuery метод, используемым для добавления класса, переданного в качестве параметра выбранному объекту.

Пожалуйста, объясните свой код, чтобы его было легче понять.

Poul Bak 20.09.2018 21:23

Другие вопросы по теме