Функция события клика не запускается из лайтбокса Fancybox

0

Я использую fancybox http://fancyapps.com/fancybox/, чтобы добавить всплывающее окно на моем сайте. Я также добавил ссылку под лайтбокс, вытаскивая изображение, и пытаюсь изменить другие вещи на странице.

Если я ставлю функцию click в jsfiddle, она будет работать нормально:

http://jsfiddle.net/cmVjN/

но когда он щелкнут изнутри лайтбокса, функция события клика не запускается:

        <script>
        $(document).ready(function() {
        $(".fancybox-thumb").fancybox({
             afterLoad: function() {
            this.title = '<a class="selectlink" href="#" id="' + this.title + '">Select This Image</a> ';
        },
            prevEffect  : 'none',
            nextEffect  : 'none',
            helpers : {

                title   : {
                    type: 'outside'
                },
                thumbs  : {
                    width   : 50,
                    height  : 50
                }
            }

        });


    $('.selectlink').click(function () {
        var myId = $(this.id);
        alert(this.id);
        $('#' + myId).prop('checked', true);
    });
    });
    </script>

Это html/php

echo '<div class="imagewrapper">';
echo '<a title="'.$row2['id'].'" class="fancybox-thumb" rel="fancybox-thumb" href="albums/'.$albumid.'/800x600/'.$row2['image'].'"><img style="border-radius:5px;" src="albums/'.$albumid.'/thumbnails/'.$row2['image'].'" /></a>';
  echo '<div style="text-align:center;">';
  echo '<strong>Select : </strong><input class="selectcheckbox" type="checkbox" name="'.$row2['image'].'" id="'.$row2['id'].'" />';
  echo '</div>';
  echo '</div>';

2 ответа

2
Лучший ответ

Пытаться:

$(document).on('click', '.selectlink', function () {
     var myId = $(this.id);
     alert(this.id);
     $('#' + myId).prop('checked', true);
});

В основном, что происходит, элемент не загружается при установке обработчика событий, но с использованием .on будет делегировать событие из документа в требуемый элемент. поэтому элементы, которые будут добавлены в будущем, также увидят событие.

http://api.jquery.com/on/

  • 0
    Спасибо!, Это предупреждает меня сейчас, но флажок по-прежнему не установлен
  • 0
    Кстати, флажок имеет тот же идентификатор, что и ссылка
Показать ещё 8 комментариев
0

Я получил там, в конце концов:

$(document).on('click', '.selectlink', function () {
 var myId = $('#check_' + this.id);
 $(myId).attr('checked', true);
 countChecked();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню