为什么我的条件陈述不起作用?

时间:2011-11-02 22:51:15

标签: javascript jquery conditional-statements

我在section元素中有几个div元素。当我点击某个链接时,我想要隐藏section元素中的所有div,而fadeIn只有div#one。

一旦div#one可见,当有人点击span元素时,它应该使用div#one和slideUp并抓住div#two和slideDown。当div#2向下滑动时,我有一个if语句来测试它是否可见。如果它是可见的,那么相同的span元素现在应该使用div#two和slideUp并抓住div#3和slideDown。我写的条件语句不起作用。请帮助!

function hwdbussSlider() {

$('.dropdown').find('a').click(function() {
    $('.hwdbuss').hide();
    $('#services #one').fadeIn(3000);
});



$('#pagi_hwdbuss').find('span:first').click(function() {
    $('#hwdbuss').find('div').removeClass('hwd_visible');
    $('#services #one').slideUp();
    $('#services #two').addClass('hwd_visible').slideDown();
});

if($('#services #two').hasClass('hwd_visible')) {

    $('#pagi_hwdbuss').find('span:first').click(function() {
        $('hwdbuss').find('div').removeClass('hwd_visible');
        $('#services #two').slideUp();
        $('#services #three').addClass('hwd_visible').slideDown();

    });
}

};

3 个答案:

答案 0 :(得分:0)

问题是该类是在事件范围内的click事件中添加的,但if语句是在hwdbussSlider()范围内执行的,所以事实上,在click生成之前,不会添加类。

我真的不明白你要做什么,所以我不会建议代码,但前面的句子可以帮助你理解为什么它不起作用。

此外,我认为您在上次#次出现时错过了$('hwdbuss').find('div')

答案 1 :(得分:0)

阅读...评论..重新阅读..我认为你的问题是你滥用你的元素的ID属性。我怀疑你有相同ID的元素,因此你会看到意想不到的结果。让他们上课。

我对此假设的推理是,您致电$('.hwdbuss') $('#hwdbuss')$('hwdbuss')

答案 2 :(得分:0)

只有在调用hwdbussSlider()时才会评估您的If语句。您需要在“span:first”点击回调

中添加if条件
function hwdbussSlider() {

$('.dropdown').find('a').click(function() {
    $('.hwdbuss').hide();
    $('#services #one').fadeIn(3000);
});



$('#pagi_hwdbuss').find('span:first').click(function() {
    $('#hwdbuss').find('div').removeClass('hwd_visible');
    $('#services #one').slideUp();
    $('#services #two').addClass('hwd_visible').slideDown();


    if($('#services #two').hasClass('hwd_visible')) {

        $('#pagi_hwdbuss').find('span:first').click(function() {
            $('hwdbuss').find('div').removeClass('hwd_visible');
            $('#services #two').slideUp();
            $'#services #three').addClass('hwd_visible').slideDown();

        });
    }

});

};