Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Вопрос по Load() (https://javascript.ru/forum/dom-window/60802-vopros-po-load.html)

ureech 20.01.2016 22:07

Вопрос по Load()
 
Здравствуйте.Вот html №1
<div class="ok"></div>
<div class="load hide"></div>
<div class="ok-a">ok</div>
<div class="prof">....</div>

Есть html№2
<div class="photo_ok" align="center">			
                  <a class="" href="" title="">
                       <img src="/images/users/ok/1.jpg" alt="" />
                    </a>
		</div>

               <div class="photo_ok" align="center">			
                  <a class="" href="" title="">
                         <img src="/images/users/ok/2.jpg" alt="" />
                  </a>
		</div>
	       <div class="photo_ok" align="center">	
                  <a class="" href="" title="">		
                        <img src="/images/users/ok/3.jpg" alt="" />
                   </a>
		</div>

Требуется при клике на <div class="ok-a">ok</div>прятоть содержимое
<div class="prof">....</div>, а подгружать html№2.С этим я справился так
$(function(){
$('.ok-a').on('click', function(event){        
$('.prof').addClass('hide')
$('.load').removeClass('hide')
$('.load').load('/users/ok.html')// html№2
})
})

Теперь нужно, что бы при клике по картинке в <div class="ok"></div> устанавливался background состоящий из этой картинке. И возврат к html№1.Делаю так
$(function()
     {
       $('.photo_ok img').on('click', function(event)
         {
           event.preventDefault();
           var url = this.getAttribute('src')
		   $('.ok').css('background-image', url)
		   $('.prof,.load').toggleClass('hide')
		   })
		   })

И не работает.Плиз,хелп.

рони 20.01.2016 22:48

Цитата:

Сообщение от ureech
$('.photo_ok img').on('click', function(event)

$('.load').on('click', '.photo_ok img',function(event)

DynkanMaclaud 20.01.2016 23:08

рони,
случаем не знаешь как на нативном подключать html файлы в корневой html?

рони 20.01.2016 23:26

DynkanMaclaud,
не понял о чём вопрос ... может про ajax?https://learn.javascript.ru/ajax-xmlhttprequest#итого

ureech 20.01.2016 23:30

Не хочет background грузиться.
$('.ok-a').on('click', function(event){        
$('.prof').addClass('hide')
$('.load').removeClass('hide')
$('.load').load('/users/ok.html')
})
     $('.load').on('click', '.photo_ok img',function(event)
         {
           event.preventDefault();
           var url = this.getAttribute('src')
		   $('.ok').css('background-image', url)
		   $('.prof,.load').toggleClass('hide')
		   })
})

alert(url) выводит путь до картинки.При клике на .load всё возвращается как надо, но в .ok нет фона.

ureech 20.01.2016 23:37

Всё нашёл ошибку.
var url = 'url('+url+')';

Большое спасибо.

ureech 20.01.2016 23:41

Не подскажите в какую сторону посмотреть, что бы после перезагрузки всё сохранялось?

рони 20.01.2016 23:41

ureech,
на данный момент 10 строка предлагает поставить неведомую зверушку ... попробуйте самостоятельно исправить параметр http://htmlbook.ru/css/background-image

рони 20.01.2016 23:42

Цитата:

Сообщение от ureech
Всё нашёл ошибку.
var url = 'url('+url+')';

ура!!! :)

рони 20.01.2016 23:45

Цитата:

Сообщение от ureech
после перезагрузки всё сохранялось?

localStorage

ureech 20.01.2016 23:49

OK!

ureech 21.01.2016 00:30

Блин, не осилить с наскоку.Не пойму, что в моём случае key, а что value в localStorage.setItem("key", "value");
Сделал так, добавил кнопку в див с фоном (в условие оберну потом)и
$('.load').on('click', '.photo_ok img',function(event)
         {
           event.preventDefault();
           var url = this.getAttribute('src')
		  var url = 'url('+url+')';
		   localStorage.url = 'url('+url+')';
		   $('.ok').css('background-image',url)
		   $('.prof,.load,.btn').toggleClass('hide')
		   })
		   $('.btn').on('click',function(event){
		   $('.ok').css('background-image',localStorage.url)
		   })

И конечно не работает

рони 21.01.2016 00:54

ureech,
var url = localStorage.url;
url && $('.ok').css('background-image',url);
$('.load').on('click', '.photo_ok img',function(event)
         {
           event.preventDefault();
           url = this.getAttribute('src')
		   url = 'url('+url+')';
		   localStorage.url = url;
		   $('.ok').css('background-image',url)
		   $('.prof,.load,.btn').toggleClass('hide')
		   });

ureech 21.01.2016 01:29

Понятно.Сегодня я приподнялся в js благодаря Вам.:yes:

ureech 21.01.2016 01:32

И последний вопрос.Почему, если я запишу этот скрипт в одну строку(в смысле компрессии),он перестаёт работать?

рони 21.01.2016 02:11

Цитата:

Сообщение от ureech
перестаёт работать?

; строка 6 и 9

ureech 21.01.2016 10:10

Добавил кнопку для сохранения фона.Теперь работает так:
1.Жмём кнопку "ОК" подгружается страница с картинками html№2
2.Кликаем по картинке появляется фон и кнопка "Save"
3.Кликаем "Save" сохраняется фон и возвращается исходня страница html№1
но есть один баг.Если после возврата на страницу html№1 снова перейти на html№2 и выбрать фон, то обратно по "Save" не возвращает, хотя фон после перезагрузки сохраняется.И после перезагрузки снова один раз срабатывает как надо.
$(function() {
	    $('.ok-a').on('click', function(event) {
	        $('.prof').addClass('hide');
	        $('.load').removeClass('hide');
	        $('.load').load('/users/ok.html');
	    });

	    var url = localStorage.url;
	    url && $('.ok').css('background-image', url);
		
	    $('.load').on('click', '.photo_ok img', function(event) {
	        event.preventDefault();
	        var url = this.getAttribute('src');
	        var url = 'url(' + url + ')';
	        $('.btn').toggleClass('hide');
			
	        var stor = $(function() {
	            $('.btn').on('click', function() {
	                localStorage.url = url;
	                $('.prof,.load,.btn').toggleClass('hide');
	            })
	        })
			
	        if (!this.stor) {
	            $('.ok').css('background-image', url);
	        } else {
	            localStorage.url = url;
	            $('.ok').css('background-image', url);

	        }

	    });
	});

рони 21.01.2016 10:40

ureech,
в строке 17 какой бред, который всегда будет true.

ureech 21.01.2016 10:55

Бред в том, что я ф-цию в переменную воткнул или, что на кнопку localStorage повесил?

рони 21.01.2016 11:00

ureech,
stor зачем?

ureech 21.01.2016 11:03

По другому не придумал как клик по кнопки в условие поместить.Вернее не клик, а условие сохранения для localStorage


Часовой пояс GMT +3, время: 13:24.