Всплывающее окно JQuery SimpleModal открывается только один раз на странице (firefox)

Я использую плагин Eric Martins SimpleModal JQuery для отображения красивых и простых модальных всплывающих окон.

Однако недавно я столкнулся с проблемой, когда я не могу открыть какое-либо всплывающее окно более одного раза на странице. У меня есть 3+ разные кнопки для открытия разных модальных всплывающих окон по всей странице. Все они хорошо закрываются после того, как я закончу с ними, но потом я не могу открыть еще один без перезагрузки страницы. Все всплывающие окна по отдельности работают нормально. Я также не получаю ошибок javascript, когда нажимаю на ссылки, которые должны открывать новое всплывающее окно.

Я выполнил шаг отладки javascript с помощью Firebug в FireFox, но это тоже не дало мне подсказки. Он прекрасно доходит до обработчика click(), просто всплывающее окно не отображается.

Кроме того, я пробовал свою страницу с любым другим браузером, который у меня есть на моей машине (последние версии: IE8, Opera, Chrome и Safari), и все там работает отлично.

Для дальнейшего изучения этого я создал новый проект MVC3 и добавил только ссылку и jquery модальное всплывающее окно по щелчку, и это тоже работает в firefox. Так что в основном мне не на что смотреть, и я надеюсь, что кто-то здесь может дать мне указатель.

Код, который я использую для вызова всплывающих окон:

<script type="text/javascript">
    $('.editwidget').click(function (e) {
        var splitIndex = $(this).attr('id').indexOf('_');
        var pageWidgetId = $(this).attr('id').substring(splitIndex + 1);
        var src = '/Edit/@Model.Name/Widgets/' + pageWidgetId;
        $.modal('<iframe frameborder="0" src="' + src + '" style="border:0px;width:100%;height:490px;" />',{
            containerCss:
            {
                height: "500px",
                width: "620px",
                padding: "5px"
            },
            overlayClose: true,
            onClose: $.modal.close()
            });
            });

</script>

Моя версия Firefox 3.6.14.

Я надеюсь, что кто-то может помочь!

Спасибо за чтение.

-- отредактировать -- Я почти уверен, что это работало до сегодняшнего дня, а сегодня утром мой firefox завис без видимой причины и засунул мне это обновление 3.6.14 в глотку. Я испытываю искушение просто обвинить Firefox. И я тоже почти уверен, потому что я изменил некоторые вещи, прежде чем заметил, что они не работают. Но так как он отлично работает в любом другом браузере, он выглядит не очень хорошо для «лисы...

-- изменить номер 2 -- я думаю, что был прав, обвиняя Firefox. полная перезагрузка моего ПК заставила все снова работать как надо. Теперь, как мне закрыть свой вопрос? Да, я новичок в публикации на StackOverflow :)


person Dirk van Bergen    schedule 03.03.2011    source источник
comment
Вы хотите открыть несколько всплывающих окон одновременно?   -  person alexl    schedule 03.03.2011
comment
Попробуйте добавить параметр appendTo: '#aspnetForm' в $.modal.   -  person Jamie Treworgy    schedule 03.03.2011
comment
@alexl Нет, не несколько одновременно. Каждый из них является правильным «модальным» всплывающим окном. Просто всплывает с iframe, а затем закрывается, чтобы снова показать страницу. После этого я хочу, чтобы можно было снова открыть другое (или то же самое) всплывающее окно!   -  person Dirk van Bergen    schedule 03.03.2011
comment
@jamietre Я использую ASP.Net MVC3, поэтому для меня нет #aspnetForm! Я попробую указать тело ‹div›, чтобы убедиться, что оно находится в нужном месте.   -  person Dirk van Bergen    schedule 03.03.2011
comment
Странный. Я часто использую simplemodal, и мне это всегда нравилось, и я не вижу здесь ничего явно плохого. Однако я обычно использую существующий скрытый div в качестве источника. Я не могу придумать причины, по которой это имело бы значение, но, может быть, попробовать это для развлечения. Кроме этого, я бы просто отследил выполнение js-кода в отладчике и посмотрел, где работает simplemodal.   -  person Jamie Treworgy    schedule 03.03.2011
comment
Еще одна мысль, у вас есть onClose: $.modal.close(). Предполагается, что этот аргумент является анонимной функцией, и если все, что вы делаете, это вызов close, он не нужен, так как это поведение по умолчанию. Возможно, close() не вызывается из-за того, что вы привязываетесь к этому параметру. Похоже, это должно иметь какое-то отношение к очистке, так как это работает один раз.   -  person Jamie Treworgy    schedule 03.03.2011


Ответы (3)


попробуйте использовать другое модальное окно. Что-то вроде Facebox

person eos87    schedule 03.03.2011
comment
Это действительно красивый модальный плагин! Но после игры с ним в течение 20 минут я не заставил его работать так же хорошо, как простой модал. Который по какой-то неизвестной мне причине снова заработал как положено. Может быть, он завидовал, что я попробовал другой плагин? - person Dirk van Bergen; 03.03.2011

У меня аналогичная проблема с моим диалоговым окном пользовательского интерфейса jquery. Когда я закрываю его (X-it), firefox 3.6.14 немного не отвечает, чем все закрывает. Все работает хорошо в другом браузере и все еще работает на моем другом компьютере с 3.6.13.

Попробую перезагрузить и посмотреть...

Нет пока проблема только в FF 3.6.14

person Bastan    schedule 03.03.2011

Перезагрузил комп и теперь все работает как надо... У FireFox просто был сложный период...

person Dirk van Bergen    schedule 03.03.2011