2014-01-31 206 views
0

我必須在這裏錯過一些非常簡單的東西。我想要做的就是使所有列表項的顏色與「鏈接」類在藍色和黑色之間切換。我已經閱讀了6篇文章,但還沒有找到答案。jQuery:if else .click not working

jfiddle:http://jsfiddle.net/Y8K2x/1/

HTML:

<button>Toggle Link Color</button> 
<ul> 
    <li class="item">Item 1</li> 
    <li class="link">Link 2</li> 
    <li class="item">Item 3</li> 
    <li class="link">Link 4</li> 
    <li class="link">Link 5</li> 
    <li class="item">Item 6</li> 
    <li class="link">Link 7</li> 
    <li class="item">Item 8</li> 
</ul> 

這裏的JS:

$('button').click(function() { 
var linkColor = $('.link').css('color'); 
if (linkColor == '#0099ff') { 
    $('.link').css('color', '#000000'); 
} else if (linkColor == '#000000') { 
    $('.link').css('color', '#0099ff'); 
} 

});

回答

1

那豈不是更容易(或清潔劑),只需使用:

jQuery的

$('button').click(function() { 
    $('.link').toggleClass('link, link1'); 
}); 

CSS

.link { 
    color: #000000; 
} 
.link1 { 
    color: #0099ff; 
} 

jsFiddle example

(順便說一句,jQuery的顏色返回RGB值,而不是十六進制)

+0

+1,並從jQuery的網站「不同的瀏覽器可能會返回邏輯上但不是文本相等的CSS顏色值,例如#FFF,#ffffff和rgb(255,255,255)。「 – lovetostrike

+0

Downvoter謹慎解釋? – j08691

1

一個簡單的console.loglinkColor將顯示顏色是rgb格式,而不是十六進制。

$('button').click(function() { 

var linkColor = $('.link').css('color'); 

if (linkColor == 'rgb(0, 153, 255)') { 

    $('.link').css('color', '#000000'); 

} else if (linkColor == 'rgb(0, 0, 0') { 

    $('.link').css('color', '#0099ff'); 

} 

}); 
0

請重碼,也許可以幫助

$('button').click(function() { 
    var that = $(this); 

    if(that.hasClass('blue')) {   
     $('.link').css('color', '#000000'); 
     $('button').removeClass('blue');  
    } else { 
     $('.link').css('color', '#0099ff'); 
     that.addClass('blue'); 

    } 

}); 

演示:http://jsfiddle.net/vsok/3qSkr/1/