0

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

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

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

NEXT 按钮在buttons{}.dialog 区域内进行评估:

$('#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由三个箭头标识的选项是否正确。

4

1 回答 1

0

不能从对话框本身的初始化内部更改对话框的选项是有道理的,但是这种解决方法起到了作用。

诚然,这是一个杂牌,但它奏效了:

  1. <span id="dummy"></span>在主文档中创建一个虚拟元素
  2. #dummy如果单击跨度,则添加 jQuery 代码以重新定位表单
  3. Next:按钮的函数中,触发对#dummy 元素的单击。

新的 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' );
});
于 2013-07-09T19:44:30.313 回答