Почему fancybox не запускается? - PullRequest
0 голосов
/ 27 июня 2011
<script type="text/javascript">
        jQuery(document).ready(function() {
            jQuery('.excerpt_read-more').click(function(e) {
                e.preventDefault();

                var url = jQuery(this).attr('href');

                jQuery.get(url, function(data) {
                    var content = jQuery(data).find('#the_content').text();

                    jQuery(this).parent().fancybox({
                        'content' : content
                    });
                });
            });
        });
        </script>

Вот мой код, все прекрасно работает до той части, где должен запускаться fancybox.Я поставил родительский метод, потому что обычно он запускается один раз на .excerpt_read-more, но в любом случае он не работает без него.

Есть предложения?

1 Ответ

2 голосов
/ 27 июня 2011

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

jQuery(document).ready(function() {
        jQuery('.excerpt_read-more').click(function(e) {
            e.preventDefault();

            var url = jQuery(this).attr('href');
            var $link = jQuery(this);  // <-- see this

            jQuery.get(url, function(data) {
                var content = jQuery(data).find('#the_content').text();

                $link.parent().fancybox({  // <-- and use it here
                    'content' : content
                });
            });
        });
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...