Lightbox больше не работает после запуска разбиения на страницы jQuery (конфликт jQuery и лайтбокса) - PullRequest
2 голосов
/ 08 июля 2011

Мы используем два сценария одновременно: prettyPhoto и jQuery pagination . Когда страница загружается впервые, оба сценария работают. Однако, когда я нажимаю на страницу 2 пагинации, лайтбокс больше не отображается, но я все равно могу переходить с одной страницы на другую. Это сценарии инициализации для обоих:

jQuery Нумерация страниц:

<script type="text/javascript">

            // This is a very simple demo that shows how a range of elements can
            // be paginated.
            // The elements that will be displayed are in a hidden DIV and are
            // cloned for display. The elements are static, there are no Ajax 
            // calls involved.

            /**
             * Callback function that displays the content.
             *
             * Gets called every time the user clicks on a pagination link.
             *
             * @param {int} page_index New Page index
             * @param {jQuery} jq the container with the pagination links as a jQuery object
             */
            function pageselectCallback(page_index, jq){
                var new_content = jQuery('#hiddenresult div.result:eq('+page_index+')').clone();
                $('#Searchresult').empty().append(new_content);
                return false;
            }

            /** 
             * Initialisation function for pagination
             */
            function initPagination() {
                // count entries inside the hidden content
                var num_entries = jQuery('#hiddenresult div.result').length;
                // Create content inside pagination element
                $("#Pagination").pagination(num_entries, {
                    callback: pageselectCallback,
                    items_per_page:1 // Show only one item per page
                });
             }

            // When document is ready, initialize pagination
            $(document).ready(function(){                  
                initPagination();
            });
</script>

prettyPhoto:

<script type="text/javascript" charset="utf-8">
  $(document).ready(function(){
    $("a[rel^='prettyPhoto']").prettyPhoto();
  });
</script>

Кто-нибудь знает, где лежит конфликт? Спасибо.

Ответы [ 2 ]

2 голосов
/ 08 июля 2011

Я нашел решение своей проблемы (которую я нашел на другом форуме):

Мне просто нужно вставить $ ("a [rel ^ = 'prettyPhoto']"). PrettyPhoto ();внутри функции pageselectCallback примерно так:

function pageselectCallback(page_index, jq){
                var new_content = jQuery('#hiddenresult div.result:eq('+page_index+')').clone();
                $('#Searchresult').empty().append(new_content);
                $("a[rel^='prettyPhoto']").prettyPhoto();
                return false;
            }

Если бы я мог дать +1 только тому парню, который ответил на него здесь .:)

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

попробуйте использовать Jquery .delegate ()

$("a").delegate("[rel^='prettyPhoto']", "load", function()
    {

        $("a[rel^='prettyPhoto']").prettyPhoto();

    });
...