jQuery IE 8显示/隐藏不起作用

时间:2012-04-07 20:12:48

标签: jquery internet-explorer-8 hide show collapse

我有一个问题,为什么这个在IE 8中工作

$(function() {
    $('.title .hide').showContent();
});

$.fn.showContent = function() {
    return this.each(function() {
        var box = $(this);
        var content = $(this).parent().next('.content');

        box.toggle(function() {
            content.slideUp(500);
            $(this).css('background-position', 'right bottom');
        }, function() {
            content.slideDown(500);
            $(this).css('background-position', 'right top');
        });

    });
};

这不起作用?

$(function() {
    $('.title .hide.show').hideContent();
});

$.fn.hideContent = function() {
    return this.each(function() {
        var box = $(this);
        var content = $(this).parent().next('.content');

        box.toggle(function() {
            content.slideDown(500);
            $(this).css('background-position', 'right top');
        }, function() {
            content.slideUp(500);
            $(this).css('background-position', 'right bottom');
        });

    });
};

我希望这两个选项有效,但我不知道为什么第二个选项在IE 8中不起作用,我希望有些人可以帮助我。

4 个答案:

答案 0 :(得分:1)


Jquery内置了hide()和show()等函数 试试吧。
例如:$('input#id').hide();
使用类选择器也不是一个好主意,因为性能会受到影响。
尝试使用id。

答案 1 :(得分:0)

如果您使用的是jquery,请使用以下javascript,  它可能对你有用

jQuery(this).hide();
jQuery(this).show();

答案 2 :(得分:-1)

看起来你只是为一个带有show类的元素调用hideContent(),这个类属于一个标题类中的hide类。 .hide.show是两个嵌套的不同类。

.title伪      。隐藏           .show

jQuery正在.title

中的.hide中寻找带有.show的元素

如果您正在切换而不是将hideContent()的第二行替换为:

$('.title .show').hideContent();
$('.title .hide').hideContent();

答案 3 :(得分:-1)

我猜这是IE8 / jQ中的一个错误。 尝试:

$(id_to_hide).css("display", "none");
$(id_to_show).css("display", "inline-block");