Смяна на съдържанието в POP UP

tyrla4eto

Registered
Здравейте имам един POP UP прозорец, в който се намира LOGIN формата. Искам когато в този POP UP прозорец натисна бутон "Регистрация", LOGIN полетата да се сменят с полетата за регистрация.
Пробвах няколко начина с js, но или ми се скрива изцяло POP UP прозореца или не се сменя съдържанието изобщо. Ако някой може да помогне? Използвам този код в момента за формата:

HTML:
<div id="popupLogin">
	<div class="def-block widget">
		<h4> Вход </h4><span class="liner"></span>
		<div class="widget-content row-fluid">
			<form id="popup_login_form">
				<input type="text" name="login_username" id="login_username" onfocus="if (this.value=='username') this.value = '';" onblur="if (this.value=='') this.value = 'username';"  placeholder="Потребител">
				<input type="password" name="login_password" id="login_password" onfocus="if (this.value=='password') this.value = '';" onblur="if (this.value=='') this.value = 'password';"  placeholder="Парола">
				<a href="#" class="tbutton small"><span>Вход</span></a>
				<a href="#" class="tbutton color2 small"><span>Регистрация</span></a>
			</form>
		</div>
	</div>
	<div id="popupLoginClose">x</div>
</div>
<div id="LoginBackgroundPopup"></div>


js:

[js] // SignIn Popup
var popupStatus = 0;
$("#Login_PopUp_Link").click(function() {
//Aligning our box in the middle
var windowWidth = document.documentElement.clientWidth;
var windowHeight = document.documentElement.clientHeight;
var popupHeight = $("#popupLogin").height();
var popupWidth = $("#popupLogin").width();
// Centering
$("#popupLogin").css({
"top": windowHeight / 2 - popupHeight / 2,
"left": windowWidth / 2 - popupWidth / 2
});
// Aligning bg
$("#LoginBackgroundPopup").css({"height": windowHeight});

// Pop up the div and Bg
if (popupStatus == 0) {
$("#LoginBackgroundPopup").css({"opacity": "0.7"});
$("#LoginBackgroundPopup").fadeIn("slow");
$("#popupLogin").addClass('zigmaIn').fadeIn("slow");
popupStatus = 1;
}
});
// Close Popup
$("#popupLoginClose").click(function() {
if (popupStatus == 1) {
$("#LoginBackgroundPopup").fadeOut("slow");
$("#popupLogin").removeClass('zigmaIn').fadeOut("slow");
popupStatus = 0;
}
});
$("body").click(function() {
$("#LoginBackgroundPopup").fadeOut("slow");
$("#popupLogin").removeClass('zigmaIn').fadeOut("slow");
popupStatus = 0;
});
$('#popupLogin, #Login_PopUp_Link').click(function(e) {
e.stopPropagation();
});[/js]
 
Виж това: http://codepen.io/monkeytempal/pen/VvKLMe

Можеш да си го модифицираш, както ти е удобно.
 
tyrla4eto каза:
Този код не работи нещо.. Copy-Paste и нищо..
При мен се отваря и работи. Виж нещо да не си объркал библиотеките (там jquery и leanmodal дали си ги инклуднал).
 
Инклудвам това което го има в този скрипт, но не става... А моя код не може ли да се преправи?
 
tyrla4eto каза:
Инклудвам това което го има в този скрипт, но не става... А моя код не може ли да се преправи?
Ама трябва да инклуднеш и jQuery библиотеката и leanModal плъгина.

Виж в settings (в горната част на codepen), после таб javascript, там пише кои библиотеки ти трябват. Тях трябва да ги инклуднеш преди js кода, който взимаш от примера.
 
anonimen каза:
tyrla4eto каза:
Инклудвам това което го има в този скрипт, но не става... А моя код не може ли да се преправи?
Ама трябва да инклуднеш и jQuery библиотеката и leanModal плъгина.

Виж в settings (в горната част на codepen), после таб javascript, там пише кои библиотеки ти трябват. Тях трябва да ги инклуднеш преди js кода, който взимаш от примера.

Точно от там гледам и точно тях съм инклуднал, ама неще...
 
С копи-пейст и инклудване на библиотеките го подкарах от раз. Да не си със стар браузър? Аз тествах с chrome, последна версия (52).

Гледа ли в конзолата за грешки?
 
anonimen каза:
С копи-пейст и инклудване на библиотеките го подкарах от раз. Да не си със стар браузър? Аз тествах с chrome, последна версия (52).

Гледа ли в конзолата за грешки?

Ако js-to го сложа в самия файл index.html няма никакви грешки в конзолата, ако го сложа в отделен js файл, който вече е инклуднат и който съдържа други скриптове за сайта вади тази грешка:

Uncaught TypeError: $(...).leanModal is not a function
(anonymous function) @custom.js:1
 
tyrla4eto каза:
anonimen каза:
С копи-пейст и инклудване на библиотеките го подкарах от раз. Да не си със стар браузър? Аз тествах с chrome, последна версия (52).

Гледа ли в конзолата за грешки?

Ако js-to го сложа в самия файл index.html няма никакви грешки в конзолата, ако го сложа в отделен js файл, който вече е инклуднат и който съдържа други скриптове за сайта вади тази грешка:

Uncaught TypeError: $(...).leanModal is not a function
(anonymous function) @custom.js:1
Сложи скрипт-тага точно преди </body> и ще тръгне.
 
anonimen каза:
tyrla4eto каза:
anonimen каза:
С копи-пейст и инклудване на библиотеките го подкарах от раз. Да не си със стар браузър? Аз тествах с chrome, последна версия (52).

Гледа ли в конзолата за грешки?

Ако js-to го сложа в самия файл index.html няма никакви грешки в конзолата, ако го сложа в отделен js файл, който вече е инклуднат и който съдържа други скриптове за сайта вади тази грешка:

Uncaught TypeError: $(...).leanModal is not a function
(anonymous function) @custom.js:1
Сложи скрипт-тага точно преди </body> и ще тръгне.

Сега тръгна да, мерси! А каква е разликата от слагането на скрипта преди </head> след <body> или преди </body>?
 
В този случай:
<script> ... </script>
<div id="el"> </div>

ако направиш $('#el') няма да получиш нищо, защото по време на зареждането на <script> още не съществува div#el.

В този случай:

<div id="el"></div>
<script> ... </script>

Когато извикаш $('#el'), вече ще получишелемента, защото той вече се е заредил по време на изпълнението на скрипта.

Ако не искаш да слагаш скрипт-тага в body-то, трябва изрично да кажеш на js-та да се изпълни след зареждане на страницата. Това става по този начин:

window.onload = function () { /* кодът тук ще се изпълни след зареждането на страницата */ }
или
window.addEventListener('load', function () { /* .... */ });
 
lam3r4370 каза:
Не е задължително. Използвай defer атрибута на script тага
Я, това се оказва полезно. Значи в такъв случай се премахва изцяло необходимостта от $(func....) и window.onload = func... ? (когато скриптовете са в отделни файлове)
 

Горе