Диалог закрывается автоматически после открытия с помощью jquery

0

Я модифицирую этот пример, который я нашел о создании модалов.

Я хочу использовать javascript для отображения диалога. Код, который у меня есть, открывает мне диалог, но он закрывается через 1 или 2 секунды. Проверка консоли. Я не получаю ошибок.

Это html-код. У меня есть jsbin, где вы можете наблюдать за закрытием диалогового окна автоматически. http://jsbin.com/UDIGeveg/1/edit

<body>
    <a id="openModal" href="">Open Modal</a>
    <div id="openM" class="modalDialog">
        <div>
            <a href="#close" title="Close" class="close">X</a>
            <h2>Modal Box</h2>
            <p>xxxxxxxxxxxxxxxxxxxxxx</p>   
        </div>
    </div>
</body>

Это мой javascript

$('#' +"openModal").click(function(){
  document.location.href='#'+"openM";
});

2 ответа

3

$('#' + "openModal") является тегом привязки, и по умолчанию это действие направляет вас на другую ссылку. Таким образом, вам необходимо предотвратить запуск его действия по умолчанию с помощью e.preventDefault()

$('#' +"openModal").click(function(e){
  e.preventDefault();
  document.location.href='#'+"openM";
});
  • 0
    Благодарю. Я собирался спросить вас, что делает e.preventDefault ().
  • 1
    Альтернатива e.preventDefault(); устанавливается атрибут привязки href как href='javascript:;' , чтобы сделать ссылку, ничего не делайте на клике.
Показать ещё 1 комментарий
0

вы можете использовать библиотеку для обнаружения изменения URL-адреса для вас!

<a id="openModal" href="#openM">Open Modal</a>

а затем закомментируйте свой javascript:

/*
$('#' +"openModal").click(function(){
    document.location.href='#'+"openM";
});
*/
  • 0
    Я знаю это. Но планирую делать больше вещей с помощью JavaScript.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню