-1

なぜこれが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');
        });

    });
};

私は2つのオプションが機能することを望んでいますが、IE 8で2番目のオプションが機能しない理由がわかりません.誰かが私を助けてくれることを願っています.

4

4 に答える 4

1


Jquery には、hide() や show() などの関数が組み込まれています。
それらを試してみてください。
例:$('input#id').hide();
パフォーマンスに影響するため、クラス セレクターも使用することはお勧めできません。
IDを使用してみてください。

于 2012-04-08T05:42:23.370 に答える
-1

title のクラスにある hide のクラスにある show のクラスを持つ要素に対してのみ hideContent() を呼び出しているようです。.hide.show は、ネストされた 2 つの異なるクラスです。

.title .hide .show

jQuery は、.title の .hide に .show を含む要素を探しています

切り替える場合は、hideContent() の 2 行目を次のように置き換えます。

$('.title .show').hideContent();
$('.title .hide').hideContent();
于 2012-04-07T20:16:30.040 に答える