Отметьте флажок, когда ссылка нажата - jquery

0

Я использую следующий скрипт для создания галереи изображений, люди щелкают флажком под изображениями, которые хотят, а затем представляют их мне. Это прекрасно работает, но теперь я добавил JQuery Fancybox, который открывает большую версию изображения в лайтбокс. Затем скрипт создает ссылку под лайтбоксом "Выбрать это изображение". То, что я пытаюсь сделать, - это когда пользователь нажимает на эту ссылку, затем проверяет/отменяет (если пользователь снова нажимает ссылку) поле выбора под изображением на главной странице. Кажется, я не могу заставить его работать, это то, что у меня есть:

Это JQuery:

        <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
                }
            }

        });
    });

    $(function () {
    $('#selectlink').click(function () {
        $('.imagewrapper').find(this.id).attr('checked', this.checked);
    });
    });
    </script>

Это часть html/php:

    $sql2 = <<<SQL
        SELECT *
        FROM 'albums'
        WHERE albumid = '$albumid' AND isalbum = ''
    SQL;


    if(!$result2 = $db->query($sql2)){
        die('There was an error running the query [' . $db->error . ']');
    }
    while($row2 = $result2->fetch_assoc()){

        echo '<div class="imagewrapper">';
        echo '<a title="'.$row2['image'].'" 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 type="checkbox" name="'.$row2['image'].'" id="'.$row2['image'].'" />';
          echo '</div>';
          echo '</div>';
        }

Что происходит, ссылка создается во всплывающем окне лайтбокса, и название ссылки - это имя файла, например, 123456.jpg, но когда я нажимаю ссылку, флажок с идентификатором 123456.jpg не гаснет?,

Теги:
checkbox

1 ответ

0

Сначала вы можете попытаться установить переменную, так как this.id может ссылаться на $ ('. Imagewrapper').

$('#selectlink').click(function () {
    $('.imagewrapper').find(this.id).attr('checked', this.checked);
});

станет:

$('#selectlink').click(function () {
    var myId = $(this).find(this.id);
    $('.imagewrapper #' + myId).attr('checked', this.checked);
});

Я не могу проверить это прямо сейчас, но это может сработать.

  • 0
    Это не похоже на работу, и флажок и ссылка имеют один и тот же идентификатор, который он должен делать в теории?

Ещё вопросы

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