jQuery ui对话框显示右上角但没有x就可以了

时间:2011-06-23 19:27:19

标签: jquery jquery-ui google-chrome

在不同版本的Chrome之间获得奇怪的行为。在我的开发机器上,我使用的是Chrome版本13.0.782.32 beta-m,我的一个测试人员正在使用版本8.xxx。我正在使用jQuery ui来显示一个对话框。在chrome 13.xxx中,一切都很好。在chrome 8.xxx中,不显示右上角的按钮。

以下是我的代码示例。我们使用对象文字来命名我们的代码。

var ourAppName = {};

ourAppName.displayDialog = function (title, body, defaults) {

    var html = '<div style="display:none;">' + ((body != undefined || body != null) ? body : 'No body (message) provided') + '</div>';

    $(html).appendTo('body').dialog(
        {
            height: (defaults != undefined || defaults != null) ? (defaults.height === undefined ? 105 : defaults.height) : 105,
            width: (defaults != undefined || defaults != null) ? (defaults.width === undefined ? 640 : defaults.width) : 640,
            modal: (defaults != undefined || defaults != null) ? (defaults.modal === undefined ? true : defaults.modal) : true,
            position: (defaults != undefined || defaults != null) ? (defaults.position === undefined ? 'center' : defaults.position) : 'center',
            autoOpen: (defaults != undefined || defaults != null) ? (defaults.autoOpen === undefined ? false : defaults.autoOpen) : false,
            title: (title != undefined || title != null) ? title : 'No title provided',
            closeOnEscape: (defaults != undefined || defaults != null) ? (defaults.closeOnEscape === undefined ? true : defaults.closeOnEscape) : true,
            resizable: (defaults != undefined || defaults != null) ? (defaults.resizable === undefined ? false : defaults.resizable) : false,
            draggable: (defaults != undefined || defaults != null) ? (defaults.draggable === undefined ? false : defaults.draggable) : false,
            overlay: (defaults != undefined || defaults != null) ? (defaults.overlay === undefined ? { opacity: 0, background: '#000000'} : defaults.overlay) : { opacity: 0, background: '#000000' },
            buttons: (defaults != undefined || defaults != null) ? (defaults.buttons === undefined ? { } : defaults.buttons) : { }
        }
    ).dialog('open').show();

};

然后,在我在另一个js文件中的绑定点击事件中,我有

$("[id$=_DownloadFileLinkButton]").click(function () {
    ourAppName.displayDialog(
        "Downloading",
        "<div style='padding-top:28px;'>Your download will begin momentarily.</div>",
        {
            height:20
        }
    );
});

这可能与Chrome版本有关,还是我的代码?

更新:

在最新版本的Chrome中看起来仍然会发生。奇怪的是,它似乎只是在登录后第一次出现。如果我要么刷新页面或导航到另一个页面,那么x就在那里。

1 个答案:

答案 0 :(得分:1)

如果它在更高版本中运行,则可能是Chrome问题。只需在Chrome 8中使用http://jsfiddle.net/SEBNv/,检查图标所在页面上的元素,看看图标位置是否错误或以某种方式隐藏。