0

マウスオーバーで私のタブを選択する次の 2 つの関数があります。最初の関数は左側用です。

$(function() {
        var $items = $('#vtab>ul>li' || '#vtab2>ul>li');
        $items.mouseover(function() {
            $items.removeClass('selected');
            $(this).addClass('selected');

            var index = $items.index($(this));
            $('#vtab>div' && '#vtab2>div').hide().eq(index).show();
        }).eq(0).mouseover();
    });

これは右側用です:

 $(function() {
        var $items = $('#vtab2>ul>li');
        $items.mouseover(function() {
            $items.removeClass('selected');
            $(this).addClass('selected');

            var index = $items.index($(this));
            $('#vtab2>div').hide().eq(index).show();
        }).eq(0).mouseover();
    });

次に、ページをフェードインおよびフェードアウトする別の関数があります。

$(document).ready(function() { $("body").css("display", "none");

$("body").fadeIn(3000);

$("a.transition").click(function(event){
    event.preventDefault();
    linkLocation = this.href;
    $("body").fadeOut(2000, redirectPage);
});

function redirectPage() {
    window.location = linkLocation;
}

});

何らかの理由で、2 番目の関数はページがフェードインしている間だけ機能し、アニメーションが完了すると機能しなくなります。2 番目の機能は、両方の垂直リストを同時に表示できないほど画面を小さくした場合にも機能します。

これがなぜなのか誰か知っていますか?私はjQueryが初めてで、どこから始めればよいか本当にわかりません。

4

1 に答える 1

0

あなたの問題は、javascript のブール演算子を間違って使用していると思われます。$('#vtab>ul>li' || '#vtab2>ul>li');

同等: $('#vtab>ul>li')

'#vtab>ul>li' の一般化されたブール値は true であり、"||" は JavaScript の「or」演算子であり、「or」は最初に見つかった true で短絡します。

関連する真実:

true || true || true == true
false || true || false == false
false || 'hey there' || true == 'hey there'
'hey there' || true == 'hey there'
'hey there' && true == true
true && 'hey there' == 'hey there'
于 2012-05-21T23:50:42.040 に答える