Изменение размера colorbox после загрузки содержимого HTML в DIV - PullRequest
4 голосов
/ 29 октября 2011

Я отважился на все посты здесь о проблемах изменения размера colorbox, свойствах div и многих других вещах!Во всяком случае, этот ОЧЕНЬ простой кусок кода ведет меня к стене, и мне интересно, если на него нельзя ответить?

<script type="text/javascript">
$(document).ready(function () {
    $("#text").load("<%= Model.FileLocation %>");
    $.fn.colorbox.resize();
});
</script>
<div id="text"></div>

Выше приведен код (который, я думаю, должен работать какпрелесть).Я попытался использовать $ .get и поместить изменение размера в обратный вызов, используя тайм-ауты и разделив вещи с помощью функций.

Я также убедился, что ничего не нарушено, текст загружается (делает предупреждениес $ ("# text") в качестве сообщения показывает загруженный текст. Также я могу указать ширину и / или высоту для функции изменения размера, и они работают find, однако я не могу сделать это на основе загруженного содержимого.

Извините за скучный пост ... есть идеи, почему в мире эта вещь не изменится?

Ответы [ 2 ]

4 голосов
/ 29 октября 2011

Попробуйте подождать, пока содержимое действительно не загрузится.

<script type="text/javascript">
$(document).ready(function () {
    $("#text").load("<%= Model.FileLocation %>", function() {
         $.fn.colorbox.resize();
    });
});
</script>
<div id="text"></div>
2 голосов
/ 31 октября 2011

Спасибо всем, кто читал и пытался придумать причину, почему это не сработало, однако я наконец нашел обходной путь.

Похоже, что по какой-то причине, даже если resize() в обратном вызове успеха, он все равно вызывался слишком рано. Мне удалось открыть firebug и вручную ввести функцию colorbox.resize() в командной строке, и после загрузки она работала очень хорошо, даже несмотря на сбой обратного вызова.

Итак, что я сделал, это

$(document).ready(function () {
        jQuery.ajaxSettings.async = false;

        $('#text').load('<%= Model.FileLocation %>');
        $.fn.colorbox.resize();
});

Установка async в ajax на false вынуждала его вызываться по очереди, и теперь он отлично работает и загружается очень быстро.

...