Показать сообщение отдельно
  #2 (permalink)  
Старый 21.02.2015, 15:01
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Зачем var post_img = post_img;, если это аргумент функции и уже передан?

Положите в каталог скрипта две картинки - img0.png и img1.png, и выполните такой пример:

<!DOCTYPE HTML> 
<html> 
<head> 
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
<style>
.ims {
    width: 256px;
    height: 256px;
    background: url(img0.png);
}
</style> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<script> 
$(function() {
    var n = 0;
    $('div.ims').click(function() {
        n ^= 1;
        this.style.background = 'url(img'+n+'.png)';
    })
});
</script>     
</head> 

<body>
<div class="ims"></div>
</body> 
</html>


Что так - this.style.background, что используя jQuery вместо этого, работать будет.

Зачем вообще new Image() и .onload = function() для него? Или так не подходит и обязательно ждать окончание загрузки?

Хотя и так без проблем будет работать:

$(function() {
    var n = 0;
    $('div.ims').click(function() {
        n ^= 1;
        var o = this, img = new Image();
        img.src = 'img'+n+'.png';
        img.onload = function() {
            o.style.backgroundImage = 'url('+this.src+')';    
        }
        
    })
});


То есть ошибок как таковых нет, возможно путь неверен, или, если используется одно и тоже имя, а изображение изменяется при этом сервером (каптча к примеру), а браузер кешировал его.
Ответить с цитированием