Простой jQuery с несколькими модальностями на одной HTML-странице

#jquery #html #css #simplemodal #eric-martin-modal

#jquery #HTML #css #simplemodal #эрик-Мартин-модальный

Вопрос:

Я попробовал простой модальный плагин Eric martin modal. И у меня возникла небольшая трудность. Я создал один модал на HTML-странице, но что, если я хочу, чтобы на одной HTML-странице было больше модалов, как на первой, только с другим фоном и содержимым?

HTML:

 <div id='content'>

    <div id='basic-modal'>



 <a href='#' class='basic'>white whine</a>


 <div id="basic-modal-content">

 <p> text text text</p>
          </div>  
          </div>
          </div> 
  

jQuery:

 jQuery(function ($) {
// Load dialog on page load
//$('#basic-modal-content').modal();

// Load dialog on click
$('#basic-modal .basic').click(function (e) {
    $('#basic-modal-content').modal();


    return false;
});
});
  

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

1. Кстати, я знаю, что bg находится внутри css-файла #simplemodal-container , но как я могу изменить для каждого модального #simplemodal-container фон внутри css для каждого модального, который я хочу сделать на той же HTML-странице?

Ответ №1:

Это должно быть легко для вас, если только вы не открываете их одновременно. Потому что плагин использует id для своих контейнеров и некоторых элементов в плагинах. И наличие одинакового идентификатора на странице создаст проблемы в вашем коде.

Вот демонстрация: http://jsfiddle.net/lotusgodkk/GCu2D/226 /

HTML:

 <div id='basic-modal'>
    <input type='button' name='basic' value='Demo' class='basic' />
    <div id="basic-modal-content1">Dialog 1</div>
    <input type='button' name='basic' value='Demo' class='basic' />
    <div id="basic-modal-content2">Dialog 2</div>
    <input type='button' name='basic' value='Demo' class='basic' />
    <div id="basic-modal-content3">Dialog 3</div>
</div>
  

jQuery:

 $(document).ready(function () {
    $('#basic-modal .basic').click(function (e) {
        $(this).next('div').modal();
        return false;
    });
});
  

Код в значительной степени понятен. Для каждого экземпляра dialog существует отдельный элемент div, который содержит отдельный html. Что касается фона, вы можете сделать это, задав CSS-стили диалоговым контейнерам.

Для CSS,

Этот плагин предоставляет опцию для containerId , которую можно использовать для присвоения пользовательского идентификатора контейнеру. Также вы можете использовать один и тот же идентификатор для разных CSS.

Демонстрация: http://jsfiddle.net/lotusgodkk/GCu2D/227 /

jQuery:

     $('#basic-modal .basic').click(function (e) {
    var c =  $(this).next('div');
    var id = c.attr('id') '_c'; // create a custom Id.
    c.modal({
        containerId:id, 
    });
    return false;
});
  

CSS:

 #basic-modal-content1_c{
    background-color:green;
}
#basic-modal-content2_c{
    background-color:red;
}
#basic-modal-content3_c{
    background-color:yellow;
}
  

Таким образом вы можете изменить CSS. Пожалуйста, ознакомьтесь с настраиваемыми параметрами плагина. Я почти уверен, что вы можете использовать их для своих целей.

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

1. Привет, спасибо за быстрый ответ. Я не открываю их одновременно. Как изменить для каждого модала фоновый контейнер? Я попытался в файле CSS поиграть со значением id #simplemodal-container background и изменить его на какой-либо другой фон, но это не сработало, он изменяет только фон первого созданного мной модала. Как изменить фон для каждого модала в CSS?

2. Вау, чувак, ты спас мне жизнь. В big это работает! Но если я хочу, чтобы это была не внутренняя кнопка, а внутренние ссылки, как я сделал, и с <p> содержимым внутри модального, как я это делаю? вы можете увидеть первый код, который я написал в вопросе, в качестве примера. Спасибо

3. И мне нужен код с X img, который у меня был, а не просто нажатие кнопки escape на клавиатуре для выхода из модального.

4. Для внутренних ссылок просто укажите класс button для ссылки, и это сработает. На самом деле, в вашем коде у него будет закрывающее изображение. Поскольку это была скрипка, я не использовал изображение.

5. И как я помещаю текст внутри каждого модала?