将HTML内容加载到DIV后调整颜色框的大小

时间:2011-10-28 20:44:52

标签: javascript jquery resize colorbox

我已经冒险到这里关于彩盒调整大小问题,div属性和许多其他事情的任何和所有帖子!无论如何,这段非常简单的代码正在把我推上墙,我想知道它是否无法回答?

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

以上是代码(我想 - 应该像魅力一样)。我已经尝试使用$ .get并将resize放入回调中,使用超时并用函数分隔。

我还验证了没有任何内容被破坏,正在加载文本(使用$(“#text”)进行提醒,因为消息显示加载的文本。此外,我可以指定宽度和/或高度调整大小功能,他们找工作,但是,我不能根据加载的内容做到这一点。

对不起啰嗦的帖子...对于世界上为什么这个东西不会调整大小的任何想法?

2 个答案:

答案 0 :(得分:4)

请尝试等待内容实际加载。

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

答案 1 :(得分:2)

感谢任何阅读并试图找出原因导致其无效的理由,但我终于找到了解决办法。

看来由于某种原因,即使将resize()置于成功回调中,它仍然过早被调用。我能够打开firebug并在命令行中手动输入colorbox.resize()函数,加载后它工作正常,即使回调失败。

所以我做的就是这个

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

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

将ajax中的async设置为false会强制它被依次调用,现在它运行良好并且加载速度非常快。

相关问题