usercontrol с colorbox не запускает событие - PullRequest
0 голосов
/ 13 октября 2010

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

Разметка :

<div style='display:none'> 
    <div id='SignUpForm' style='padding:10px; background:#fff;'>
        <umbraco:Macro Alias="SignUpUserControl" runat="server"></umbraco:Macro>
    </div> 
</div>

JavaScript :

$(document).ready(function () {
    $(".openSignUpForm").colorbox({
        width  : "50%",
        inline : true,
        href   : "#SignUpForm"
    });
});

Кстати. я использую umbraco cms, макрос является ссылкой на usercontrol. но у меня все та же проблема, если я добавляю usercontrol на страницу обычным способом.

Ответы [ 2 ]

1 голос
/ 09 июня 2011

спасибо за ответ. я просто написал код colorbox с нуля. это не было трудно на самом деле! просто абсолютная позиция div поверх всего остального, для которого не было отображено ни одного, начиная с простой строки, например $ ("# mydiv"). fadeIn (); или $ ("# mydiv"). show ();

1 голос
/ 08 июня 2011

Я понятия не имею, удалось ли вам исправить это с тех пор, учитывая, как давно это произошло, я думаю, вы, вероятно, пошли дальше!

Но всем, у кого есть эта проблема, я бы рекомендовал прочитать эту страницу: http://www.experts -exchange.com / Программирование / Языки / .NET / ASP.NET / Q_26778740.html

Если вы прокрутите страницу вниз, вы увидите все ответы, которые были опубликованы без учетной записи.

РЕДАКТИРОВАТЬ: 08/06/2011

На самом деле только что заметил, что прямая ссылка на вышеуказанную страницу не работает ...

Вот пост, на который я ссылался с этого сайта: " Давайте разберемся, как работает большинство плагинов наложения jquery: Ваша структура страницы выглядит следующим образом:

- тело> -

- форма> -

—- содержимое вашей страницы -

- div для отображения в оверлее (div для colorbox), обычно скрывается с помощью display: нет, как в этом случае -

- / форма> -

- / body> -

Во время выполнения при отображении наложения структура изменяется следующим образом:

- тело> -

- форма> -

—- содержимое вашей страницы -

- / форма> -

- div> (это оверлейная оболочка) —Див, отображаемый в оверлее (div colorbox), обычно скрывается с помощью display: нет, как в этом случае -

- / DIV> -

- / body> -

Обратите внимание, что ваш div удален из тега. Так события не запускаются.

Решение:

В файле jquery.colorbox.js найдите следующую строку: $ ('body'). prepend ($ overlay, $ box.append ($ wrap, $ loadingBay));

замените его следующей строкой: $ ('form'). prepend ($ overlay, $ box.append ($ wrap, $ loadingBay));

Все должно начать нормально работать. "

Надеюсь, это поможет!

...