jQuery if语句改变CSS

时间:2013-06-20 13:17:55

标签: jquery css button click toggle

此代码是关于按下使文本切换(显示/隐藏)的按钮:

jQuery('Button']').click(function () {
    jQuery('#text').slideToggle('fast', function () {});      
    if (jQuery('#text').css('display') == 'block') {
        jQuery('#dropdown1arrow').css({"border-top":"0px"});
        jQuery('#dropdown1arrow').css({"border-bottom":"7px solid #0767B1"});            
       }
    if (jQuery('#text').css('display') == 'none') {
        jQuery('#dropdown1arrow').css({"border-bottom":"0px"});
        jQuery('#dropdown1arrow').css({"border-top":"7px solid #0767B1"});        
       }    
});

一切都有效,除了显示:没有,任何人都知道为什么/如何解决这个问题?

3 个答案:

答案 0 :(得分:3)

测试元素是否可见:

if (jQuery('#text').is(":visible")) {
    // something
}
else {
    // something else
}

答案 1 :(得分:0)

一些改进:

  • 使用.is(':visible')检查元素是否可见
  • 将if语句移至callback
  • slideToggle()函数内
  • 将两个css调用合并为一个调用
  • 第一行中有拼写错误 - 'Button']'

代码:

jQuery('Button').click(function () {
  jQuery('#text').slideToggle('fast', function () {
    text_obj = $(this)
    if (text_obj.is(':visible')) {
      jQuery('#dropdown1arrow').css({"border-top":"0px", "border-bottom":"7px solid #0767B1"});
    }
    else {
      jQuery('#dropdown1arrow').css({"border-bottom":"0px", "border-top":"7px solid #0767B1"});
    }
  });
});

答案 2 :(得分:0)

你可以试试这个:

jQuery('button').click(function () {
    jQuery('#dropdown1arrow').css(jQuery('#text').is(":visible") ? 
                  {"border-top":"0px", "border-bottom":"7px solid #0767B1"} :
                  {"border-bottom":"0px", "border-top":"7px solid #0767B1"}
                 );
});