0

我对 jquery 很陌生,我遇到了一个我似乎无法解决的问题。

所以,我有一些Jquery UI 选项卡。在第二个选项卡上,我有一个按钮,单击该按钮应该会启动一个对话框。我以前有一些使用相同代码的手风琴,它运行良好。

在 IE、Chrome 和 FF 上的行为如下:单击第二个选项卡 (#create-file) 上的按钮时,对话框会短暂出现,然后立即关闭。然后第一个选项卡而不是第二个选项卡变为活动状态。当试图找到解决方案时,我将 autoOpen 从 false 变为 true - 然后当我单击按钮时显示对话框,但当然,它显示在页面首次加载时 - 不是解决方案。这是我的代码。

JS:

$("#tabs").tabs();
$("#fileform").dialog(
{
      show: 'fade',
      hide: 'fade',
      autoOpen : false,
  height : 300,
  width : 350,
  modal : true,
  buttons : {
    "Save" : function() {
        $(this).dialog("close");
         }
    },
Cancel : function() {
    $(this).dialog("close");
        }
    },
close : function() {
    $(this).dialog("close");
        }
    });
$("#create-file").button().click(function() {
    $("#fileform").dialog("open");
});

HTML:(实际显示)

<div class="tabs" id="tabs">
        <ul>
            <li><a href="#TAB1">TAB 1</a></li>
            <li><a href="#TAB2">TAB 2</a></li>
        </ul>
        <div id="TAB1">
        <p>LOREM IPSUM KLJLKJLKJKLJKLJHGHGFHGJHLKJH</p>
        </div>
        <div id="TAB2">
                    <div class="scrollable">
                                <ol class="selectable" id="supportfiles">
                                        </ol>
                                    </div>
                <button id="create-file">Save File</button>
        </div>

对话框代码:

            <div id="fileform" title="New File">
        <p class="validateTips">Please enter data.</p>
        <form>
            <fieldset>
                <label for="filepath">File</label> <input type="file"
                    name="filepath" id="filepath"
                    class="text ui-widget-content ui-corner-all" /> <label
                    for="description">Description</label> <input type="text"
                    name="description" id="description" value=""
                    class="text ui-widget-content ui-corner-all" />
            </fieldset>
        </form>
        </div>
4

1 回答 1

0

这是一切正常的。在定义取消按钮之前,您已经关闭了太多大括号。Cancel 不是像openand那样的事件close

buttons: {
    "Save": function () {
        $(this).dialog("close");
    },
    "Cancel": function () {
        $(this).dialog("close");
}
于 2013-02-12T23:25:37.243 回答