Javascript печатает большие пальцы, которые должны открываться в fancyBox при нажатии на них - PullRequest
0 голосов
/ 14 марта 2012

Я работаю над школьным проектом в Visual studio 2010.

Я пытаюсь создать страницу с большим количеством изображений.Когда я нажимаю на один из этих больших пальцев, я хочу, чтобы они появились в fancybox.Дело в том, что клиент должен иметь возможность загружать больше изображений.Поэтому я решил, что мой javascript будет печатать большие пальцы и изображения с массивом.

Это Javascript, который загружает изображения в <a>:

var divbilder;
var bildenavn = ["img/Media/3.jpg", "img/Media/4.jpg"];
var bildethumb = ["<img src='img/Media/3_thumb.jpg' alt='' />", "<img src='img/Media/4_thumb.jpg' alt='' />"];

window.onload = init;

function init() {

divBilder = document.getElementById("divBilder");
genererBilder();
}

function genererBilder() {
for (var i = 0; i < bildenavn.length; i++) {
    var nyttBilde = document.createElement("a");
    nyttBilde.className = "grouped_elements";
    nyttBilde.rel="group1";
    nyttBilde.href = bildenavn[i];
    nyttBilde.innerHTML = bildethumb[i];
    divBilder.appendChild(nyttBilde);
}
}

Покахорошо, изображения отлично загружаются на мой сайт.

Но они не появляются в fancyBox, когда я нажимаю на них, я получаю изображение на пустой странице.

Вот мой код для FancyBox:

    $(document).ready(function () {
     $("a.grouped_elements").fancybox();

});

Однако я попытался вставить этот код: <a class="grouped_elements" rel="group1" href="img/Media/3.jpg"><img src="img/Media/3_thumb.jpg" alt=""/></a> в мой HTML.Тогда fancybox работает отлично.

Другими словами, у меня есть все файлы fancyBox, необходимые в заголовке и т. Д.

Другие примечания, которые могут вам понадобиться: Когда я "проверяю элемент" в Chrome, мой javascript имеетсделал кодовые строки, которые идентичны той, которую я вручную вставил в свой HTML.С разными href и src внутри <a> конечно.

Я использую ASP.net c # с MasterPage.

Любая помощь приветствуется, я новичок в Jquery и javascript, так что будьте добры:)

1 Ответ

0 голосов
/ 14 марта 2012

Единственная причина, по которой я могу думать, что это происходит, заключается в том, что вы используете fancybox v1.3.x.

Если вышеприведенное верно, fancybox v1.3.x не поддерживает динамически добавленные элементы иВот почему ваша жестко запрограммированная ссылка работает только, но не сгенерированная вашим js.

Я написал обходной путь, используя метод jQuery .on(), который вы можете найти здесь

Возможно, вам придется настроить код, чтобы он соответствовал вашей собственной структуре, например

$("#divBilder").on("focusin", function(){ ....
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...