从对话框内部重新定位jQueryUI对话框

时间:2013-07-09 16:52:20

标签: jquery-ui-dialog

已解决 - 等待两天自我接受

使用jQueryUI对话框显示数据输入表单。

当用户点击NEXT时,会更改对话框大小(添加了几个控件),我希望将对话框重新定位到窗口顶部。

在.dialog:{/ p>的buttons{}区域内评估NEXT按钮

$('#new_contact').dialog({
    autoOpen: false,
    modal:true,
    title: 'Enter contact information:',
    width: 800,
    buttons: {
        Next: function() {
            var vet = verify_dialog_fields();

            if (second_time_thru == 0) {
==> ==> ==>     $('#new_contact').dialog( "option", "position", 'top' );
                ask_choose_projects();
                return false;
            }
--= SNIP! =--

对话框未重新定位,因此position命令错误或我还有其他错误。

任何人都可以从不完整的代码段看到我做错了吗?

我怀疑我做错了,因为我在.dialog()内部调用了.dialog(“option”)。

至少,我需要确认由三个箭头标识的position选项是正确的。

1 个答案:

答案 0 :(得分:0)

有意义的是,无法从对话框本身的初始化中更改对话框的选项,但这种解决方法可以解决问题。

这无疑是一种kludge,但它起作用了:

  1. 在主文档
  2. 中创建一个虚拟<span id="dummy"></span>元素
  3. 如果单击#dummy范围
  4. ,则添加jQuery代码以重新定位表单
  5. Next:按钮的功能中,触发单击#dummy元素。
  6. 新HTML:

    <span id="dummy"></span>
    

    NEXT功能的修订代码:

    $('#new_contact').dialog({
        autoOpen: false,
        modal:true,
        title: 'Enter contact information:',
        width: 800,
        buttons: {
            Next: function() {
                var vet = verify_dialog_fields();
    
                if (second_time_thru == 0) {
    ==> ==> ==>     $('#dummy').trigger('click');
                    ask_choose_projects();
                    return false;
                }
    --= SNIP! =--
    

    新的jQuery代码:

    $('#dummy').click(function() {
        $('#new_contact').dialog( "option", "position", 'top' );
    });