当前位置: 首页 > 面试题库 >

自动将jQuery UI对话框的大小调整为ajax加载内容的宽度

范承望
2023-03-14
问题内容

我在查找有关此方面的特定信息和示例时遇到很多麻烦。我的应用程序中有许多jQuery
UI对话框,这些对话框附加到已加载.ajax()调用的div上。它们都使用相同的设置调用:

 $(".mydialog").dialog({
        autoOpen: false,
        resizable: false,
        modal: true
 });

我只想将对话框调整为要加载的内容的宽度。现在,宽度仅停留在300px(默认),我得到一个水平滚动条。

据我所知,“ autoResize”不再是对话框的选项,当我指定它时什么也没有发生。

我尝试不为每个对话框编写单独的函数,因此.dialog("option", "width", "500")并不是一个选项,因为每个对话框的宽度都不同。

指定width: 'auto'对话框选项只会使对话框占用浏览器窗口宽度的100%。

我有什么选择?我正在将jQuery 1.4.1和jQuery UI 1.8rc1一起使用。看起来这应该很简单。

编辑:我已经为此实现了一个变通的解决方法,但我仍在寻找更好的解决方案。


问题答案:

我刚刚使用JQuery 1.4.1和UI 1.8rc1编写了一个小型示例应用程序。我所做的只是将构造函数指定为:

var theDialog = $(".mydialog").dialog({
        autoOpen: false,
        resizable: false,
        modal: true,
        width:'auto'
});

我知道您说过,这使它占据了浏览器窗口的100%宽度,但是它在这里经过FF3.6,Chrome和IE8的测试,效果很好。

我不是在进行AJAX调用,只是手动更改对话框的HTML,但认为不会引起任何问题。其他的CSS设置是否可以将其淘汰?

唯一的问题是,它使宽度偏离中心,但是我发现了此支持标签,在这里,他们提供了一种将dialog('open')语句放入setTimeout中的解决方法,以解决此问题。

这是我的head标签的内容:

<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.4.1/jquery.min.js"></script>
<script type="text/javascript" src="jquery-ui.min.js"></script>
<link href="jquery-ui.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
    $(function(){
        var theDialog = $(".mydialog").dialog({
            autoOpen: false,
            resizable: false,
            modal: true,
            width: 'auto'
        });

        $('#one').click(function(){
            theDialog.html('some random text').dialog('open');
        });

        $('#two').click(function(){
            theDialog.html('<ul><li>Apple</li><li>Orange</li><li>Banana</li><li>Strawberry</li><li>long text string to see if width changes</li></ul>').dialog('open');
        });

        $('#three').click(function(){
            //this is only call where off-centre is noticeable so use setTimeout
            theDialog.html('<img src="./random.gif" width="500px" height="500px" />');
            setTimeout(function(){ theDialog.dialog('open') }, 100);;
        });
     });
</script>

我从http://jquery-ui.googlecode.com/files/jquery-ui-1.8rc1.zip下载了Jquery UI的js和css 。和身体:

<div class='mydialog'></div>
<a href='#' id='one'>test1</a>
<a href='#' id='two'>test2</a>
<a href='#' id='three'>test3</a>


 类似资料:
  • 问题内容: 我喜欢jQueryUI的对话框。但是,似乎没有一种动态加载内置内容的方法。我想我必须使用其他方法来实现这一目标?iframe仅在可见时才会加载内容吗?这是正确的方法吗? 如果其他对话框机制更适合仅在首次打开时加载内容,则我愿意接受。 问题答案: 这并非难事-仅此而已,我不会开始与iframe搞混。这样的事情怎么样? 基本上,您创建对话框,然后打开对话框,从服务器中加载一个html文件,

  • 问题内容: 目前我的模态对话框是这样的 加载的Div包含在同一页面中。显示对话框时,如何将div移至第二页并通过Ajax加载内容?是否可以根据需要重用脚本来加载不同的内容? 问题答案: 看看Nemikor的这篇博客文章,它应该做您想要的。 http://blog.nemikor.com/2009/04/18/loading-a-page-into-a- dialog/ 基本上,在调用“打开”之前,

  • 问题内容: 我在一个网格中嵌套了两个网格。不幸的是,右边的嵌套网格设置行的高度,以使左边和右边的网格都具有相同的高度,额外的空间在class的div之间共享。如何设置右侧嵌套网格的行以调整内容的大小,使其与左侧嵌套行的高度相同? 问题答案: 您可以尝试 参考 您也可以只使用或

  • 问题内容: 我正在尝试为带有超链接的长句子调整对话框()的高度。 我的代码是.. 如果我没有设置首选大小,那么该对话框将非常长,并且不可读。因此,我想将宽度固定为480。 而且,我要根据文字的长度调整高度。 如果运行此代码,则会看到垂直滚动条。但我不想显示该滚动条并调整对话框的高度。 问题答案: 为了固定宽度并调整高度,我亲自使用了这个技巧:您可以使用setSize固定任意高度和目标宽度,然后使用

  • 我在加载到锚机中的FXML布局方面遇到了问题。 我有一个Scene.fxml,上面有一个AnchorPane和一个按钮。按下按钮将nternal.fxml加载到AnchorPane中。Internal.fxml有一个文本字段,其中AnchorPane约束设置为左右。就这样。 虽然现在调整窗口大小时,文本字段不会调整大小。 为什么文本字段不调整自身大小?下面代码中的错误在哪里? 主要的java: 场

  • Android最近增加了根据视图大小以及最小和最大文本大小调整TextViews文本大小的支持。 https://developer.Android.com/guide/topics/ui/look-and-feel/autosizing-textView.html 不幸的是,他们不支持EditTexts,那么EditText还有其他的替代方案吗?