2014-10-30 2 views
0

Я хотел бы изменить CSS свойства, нажав на Img с помощью если и еще функции, но "еще" не работаетеще не работает (Jquery)

Jquery:

$('.expand').click(function(){ callmeman() });  

function callmeman(){ 
    if($('.expand').css('background-image') == 'url(img/UP.png)') 
    { 
    $('.expand').css({'background-image':'url(img/DOWN.png)'}); 
    } 
    else { 
    $('.expand').css({'background-image':'url(img/UP.png)'}); 
    } 
} 
+0

может быть, это не совсем == ... но кроме того, почему вы не просто использовать CSS и toggleClass? Вы можете создать и опустить одиночное изображение и просто изменить положение фона. –

+1

что с другим не работает? Вы уверены, что у вас есть 'UP.png' в вашем каталоге img? Вы получаете какие-либо ошибки js в консоли? – scrappedcola

+0

У вас есть более одного элемента на вашем сайте с классом = "expand"? – Robbert

ответ

2

Вот решение с помощью toggleClass. Я использовал фоновый цвет, но вы можете изменить его, чтобы изменить фоновое изображение.

$('.expand').click(function() { 
 
    $(this).toggleClass('expanded'); 
 
});
.expand { 
 
    height: 200px; 
 
    background-color: blue; 
 
} 
 
.expand.expanded { 
 
    background-color: green; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 

 
<div class="expand"></div>

+0

Да. Хотя было бы лучше с '.up' или' .down'. –

0

Когда JQuery возвращает background-image, он возвращает его с полным именем, например url(http://myurl.com/image/UP.png). Вот почему первый if не проходит, поэтому он возвращается к else и просто устанавливает background-image обратно на url(img/UP.png). В качестве теста вы можете указать изображение с его полным именем, и оно должно работать.

Однако лучший и надежный способ сделать это - использовать классы css. Что-то вроде:

CSS:

.expand up 
{ 
    background-image: url(img/UP.png); 
} 

.expand down 
{ 
    background-image: url(img/DOWN.png); 
} 

JQuery:

$('.expand').toggleClass('up').toggleClass('down'); 
+1

Или используйте 'toggleClass' и просто еще:' $ ('. Expand'). ToggleClass ('up'). ToggleClass ('down'); ' –

+0

Вот что я указал. Также, когда вы проверяете фоновый цвет, не возвращаете «черный» или «# 000», а значения rgb и другие вещи –

+0

@AndyM вы правы =) Обновлено. –

Смежные вопросы