ASP.Net постбэк перерывы jQuery FancyBox - PullRequest
0 голосов
/ 09 августа 2011

У меня есть справочная ссылка FancyBox на странице ASP.Net ASPX, которая зарегистрирована следующим образом:

    <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4/jquery.min.js"></script>
    <script type="text/javascript" src="fancybox/jquery.fancybox-1.3.4.js"></script>
    <link rel="stylesheet" type="text/css" href="fancybox/jquery.fancybox-1.3.4.css" media="screen" />

    <script type="text/javascript">
        $(document).ready(function() {

        $("#help").fancybox({
            'width': '90%',
            'height': '90%',
            'autoScale': true,
            'transitionIn': 'elastic',
            'transitionOut': 'none',
            'titleShow': false,
            'type': 'iframe'
        });

    });
  </script>

Работает нормально, но после 2-х постов (все еще работает после 1) исключениездесь (в fancybox.js) говорится, что 'wrap' - это не объект, когда я нажимаю на ссылку справки:

    $.fancybox.center = function() {
    var view, align;

    if (busy) {
        return; 
    }

    align = arguments[0] === true ? 1 : 0;
    view = _get_viewport();

    if (!align && (wrap.width() > view[0] || wrap.height() > view[1])) {
        return; 
    }

После третьего поста возвращается ошибка до полной загрузки страницы.в файле jquery.js Microsoft JScript runtime error: Object doesn't support this property or method указывает не где в peticular.

Любые идеи, почему пост-спины могут сломать fancybox?

1 Ответ

4 голосов
/ 02 декабря 2011

Решение - добавить "lazy_loader".

Это загрузит ваши классы fancybox в каждом постбэке

<script type="text/javascript">
    $(document).ready(function () {
        Sys.WebForms.PageRequestManager.getInstance().add_endRequest(lazy_loader);
        lazy_loader();
    });

    function lazy_loader() {
        $("#help").fancybox({
            'width': '90%',
            'height': '90%',
            'autoScale': true,
            'transitionIn': 'elastic',
            'transitionOut': 'none',
            'titleShow': false,
            'type': 'iframe'
        });
    }
</script>

Это должно прекрасно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...