2

我编写了一个 javascript 模块(div 对象),如果您使用 Jquery UI 显示和隐藏功能在输入元素内单击,它会从右侧滑入文档。这在除 IE 8 之外的大多数浏览器中都能正常工作。

问题是当模块隐藏自己时,IE 8 将不再打开它。

经过大量工作,我设法找出了一些奇怪之处。当我将以下代码作为按钮元素的 onclick 函数运行以隐藏模块时,我可以再次打开它。

$('#segitseg').hide('drop', { direction: 'right' }, 600);

但是,如果我从一个名为 Segitseg 的对象(在英语中表示帮助)调用同一行,如下所示:

var Segitseg = new function () {
    ...
    this.bezar = function() {
        $('#segitseg').hide('drop', { direction: 'right' }, 600);
    }
    ...
}

然后我无法再次重新打开模块。

但我应该使用第二种变体,因为方法 bezar 也应该做其他事情。

有没有人遇到过这个问题?

4

2 回答 2

0

尝试使用:$(document).ready(function() {});

于 2013-02-05T14:03:24.457 回答
0

我发现问题了!

好吧,当你在一个元素上调用 hide() 时,它会改变它的不透明度,或者更重要的是它的 alpha 不透明度,它被 IE8 使用。所以元素将是不可见的。

解决方案:(在 hide() 函数结束后改回不透明度)

$('#segitseg').hide('drop', { direction: 'right' }, 600, function(){
    $('#segitseg').css('filter', 'alpha(opacity=100)');
});
于 2013-02-05T15:44:32.807 回答