jQuery UI对话框调整大小

jQuery UI对话框调整大小,jquery,twitter-bootstrap,jquery-ui-dialog,Jquery,Twitter Bootstrap,Jquery Ui Dialog,使用了最新的jQuery 1.11.2和2.1.3,UI 1.11.3引导程序3.3.2。 非常简单的代码: <div id="abd"> 111 <input style="width: 100%;"> </div> <script type="text/javascript">$(document).ready( function(){ $('#abd').dialog(); } );</script> 当然,它可

使用了最新的jQuery 1.11.2和2.1.3,UI 1.11.3引导程序3.3.2。 非常简单的代码:

<div id="abd">
  111
  <input style="width: 100%;">
</div>
<script type="text/javascript">$(document).ready(
 function(){
  $('#abd').dialog();
 }
);</script>

当然,它可以工作,但每次调整大小操作后,带有输入的DIV的宽度都会减小。如果我包括bootstrap.css,宽度将减少34像素,而不包括bootstrap.css,宽度将减少1像素。选中:FireFox,IE11。在Chrome中,我有一个额外的问题——在这个分区中增加了scrool条。

这是jQuery UI中的一个bug,优先级较低。两周前还没有确定,但提交了解决方案。您可以阅读有关它的内容

jQueryUI1.11.3非常糟糕的错误修复,仅针对UI对话框进行测试,我仅使用自定义包与此组件

之前:

_applyChanges: function () {
    var props = {};

    if (this.position.top !== this.prevPosition.top) {
        props.top = this.position.top + "px";
    }
    if (this.position.left !== this.prevPosition.left) {
        props.left = this.position.left + "px";
    }
    if (this.size.width !== this.prevSize.width) {
        props.width = this.size.width + "px";
    }
    if (this.size.height !== this.prevSize.height) {
        props.height = this.size.height + "px";
    }

    this.helper.css(props);

    return props;
},
之后:

_applyChanges: function () {
    var props = {};
    if (this.position.top !== this.prevPosition.top) {
        props.top = this.position.top + "px";
    }
    if (this.position.left !== this.prevPosition.left) {
        props.left = this.position.left + "px";
    }
    this.helper.css(props);
    if (this.size.width !== this.prevSize.width) {
        props.width = this.size.width + "px";
        this.helper.width(this.size.width);
    }
    if (this.size.height !== this.prevSize.height) {
        props.height = this.size.height + "px";
        this.helper.height(this.size.height);
    }
    return props;
},
和在调整大小

if (sum && sum >= 0) {
    style[prop] = sum || null;
}
改为:

if (sum && sum >= 0) {
    if($.inArray(prop,['width','height'])>=0){
        el[prop](sum);
    }else{
        style[prop] = sum || null;
    }
}

新的坏习惯。我可以在有引导和没有引导的情况下平滑地调整页面大小。 1.移除可调整大小的ui插件,也可删除大小; 2.将其添加到ui.resizeable小部件的_mouseDrag的末尾 另外,我如何写这个问题的标题-这只是针对对话

$('DIV.alj-ui-dialog-content').each(function(){
    el = $(this);
    el.width(
        el.parent().width()
        - parseInt(el.css('paddingLeft'),10) - parseInt(el.css('paddingRight'),10) - 1
    );
    el.height(
        el.parent().innerHeight()
        - parseInt(el.css('paddingTop'),10) - parseInt(el.css('paddingBottom'),10)
        - $(el.parent().children('.alj-ui-dialog-titlebar')[0]).outerHeight()
        - parseInt(el.parent().css('paddingTop'),10) - parseInt(el.parent().css('paddingBottom'),10) - 3
    );
});

问题是:内部DIV宽度减少了,为什么?检查jQuery 2.1.1-同样的问题。每次调整大小操作后,内部宽度减小。初始化后,我看到宽度:auto;-视图是可以的,但在任何调整大小后,我有宽度:nnnpx和nnn减小。您输入的样式宽度:100%;这意味着它应该采用您的窗口宽度。您可以看到原始jQuery和UI,无需任何修改。宽度:100%-非窗口宽度为-parent DIV。请上下移动对话框的底部边框,宽度将减小。您的小提琴也有同样的问题。明天是总统节假期:不在我的国家:尝试在2.1.3中修复它,但不这么简单,代码已更改。我可以修复第二部分,但第一部分被移动到_applyChanges并使用el。width\height函数有一种奇怪的效果:我可以移动底部边框,并且宽度保持正确,但随后我移动右边框,内部DIV宽度增加:并退出对话框边框。这不是一个解决方案。如果引导框大小:边框框;包括它工作,但没有它内部div仍然减少。