Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Отключенный JavaScript (https://javascript.ru/forum/events/16845-otklyuchennyjj-javascript.html)

poorking 30.04.2011 22:19

monolithed,
Это я знаю, я говорил
Цитата:

Сообщение от poorking
если речь идет об Element (nodeType 1)

Но все равно спасибо :)

trikadin 30.04.2011 22:37

Цитата:

Сообщение от poorking (Сообщение 102687)
trikadin,
Вы правы, но лучше уж тогда назначить обработчик на документ, смотреть на чем был клик и если на ссылке то принимать соответствующие меры, я думаю так лучше чем вешать обработчик на каждую ссылку
document.onclick = function(e){
		var trg = function(event){
			return event.target || event.srcElement;
		}(e || window.event)
		
		if(trg.tagName = "A"){
			doSomething(trg.href);
			return false;
		}
		
		
	}

Вот вообще не увидел каких-либо преимуществ вашего кода. Во-первых, каждый при клике браузер должен будет проверять, а не ссылке ли чел щёлкнул. А зачем? Это было бы понятно для больших AJAX-проектов, в нашем же случае ссылка уникальна, а следовательно, обработчик имеет смысл назначать только ей.

poorking 30.04.2011 22:55

trikadin,
Если ссылка одна то несомненно. А если новостная лента автоподгружающаяся аля фкантакте и их 100? вы каждой напишете свойство onclick?
PS тут где то есть похожая тема и я запутался, здесь да, ссылка одна. Виноват, каюс

trikadin 01.05.2011 00:28

Цитата:

Сообщение от poorking
Если ссылка одна то несомненно. А если новостная лента автоподгружающаяся аля фкантакте и их 100? вы каждой напишете свойство onclick?

Цитата:

Сообщение от trikadin
Это было бы понятно для больших AJAX-проектов

Собственно, я и говорю))

Цитата:

Сообщение от poorking
тут где то есть похожая тема и я запутался, здесь да, ссылка одна.

Никаких претензий)

alex_89 01.05.2011 20:17

Вы совсем запутали меня! Ссылка единственная, и сайт у меня с не большим контентом!!!!А фишка про переход на другую страницу прнравилась.Но все же объясните толком как должно все быть!!!

ВОТ МОЙ СКРИПТ:

<script>
02	function showLoginWindow()
03	 {
04	  document.getElementById("login").style.display="block";
05	  var hs=document.getElementById("hideshow");
06	  hs.innerHTML="Hide";
07	  hs.onclick=hideLoginWindow;
08	 }
09	function hideLoginWindow()
10	 {
11	   document.getElementById("login").style.display="none";
12	   var hs=document.getElementById("hideshow");
13	   hs.innerHTML="Enter";
14	   hs.onclick=showLoginWindow;
15	   hs.style.display="block";
16	  }
17	</script>

HTML:
HTML:

01	<body onload="hideLoginWindow()">
02	<a href="Files/registration.html"> Register</a>
03	<div>
04	  
05	<a style="display: none" id="hideshow" href="#" onclick="showLoginWindow()">Enter</a>
06	  
07	<div id="login">
08	  
09	<FORM action="" method="POST">
10	  Login: <INPUT type="text" name="lgn"><br>
11	  Password: <INPUT type="password" name="pswd"> <br>
12	  <INPUT type="submit" name="enter" value="Enter">
13	 </FORM>
14	</div>
15	  
16	</div>
17	</body>


Напишите полностью страницу пж-та
!!!

trikadin 02.05.2011 16:11

Вообще, просить написать страницу - наглость. :-E Можно спрашивать. Не понимаешь - уточняй. Не понимаешь совсем - учи матчасть. И не надейся, что в следующий раз тебе ещё раз так помогут.

<html>
<head>
<style>
#login {
	display: none;
}
#login.show {
	display: block;
}
</style>
</head>

<body>
	<a href="Files/registration.html"> Register</a>
	<div>
		<a style="display: none" id="hideshow" href="login.html">Enter</a>
		<!-- login.html - это страница, куда перейдёт пользователь с отключённым javascript -->
		<div id="login">
			<FORM action="" method="POST">
				Login: <INPUT type="text" name="lgn"><br>
				Password: <INPUT type="password" name="pswd"> <br>
				<INPUT type="submit" name="enter" value="Enter">
			</FORM>
		</div>
	</div>
<script src="hideshow_login.js"></script>
</body>
</html>


Содержимое файла hideshow_login.js:

// скрипт должен быть в конце, а не в начале, тогда он будет выполнен после того, как загрузится DOM
	function showLoginWindow()
	{
	document.getElementById("login").className+=" show"; // менять стили через javascript - плохо. Лучше определить отдельный класс
	var hs=document.getElementById("hideshow");
	hs.innerHTML="Hide";
	hs.onclick= function(){hideLoginWindow(); return false};
	};
	
	function hideLoginWindow()
	{
	document.getElementById("login").className.replace(" show", ""); // удаляем класс
	var hs=document.getElementById("hideshow");
	hs.innerHTML="Enter";
	hs.onclick= function() {showLoginWindow(); return false} // меняем обработчик на ссылке
	hs.style.display="block"; // не очень понял, зачем эта строка, поэтому не стал трогать...
	};
	
	document.getElementById("hideshow").onclick= function() {showLoginWindow(); return false}; // вешаем обработчик на ссылку, return false нужен, чтобы не произошло перехода на другую страницу

alex_89 04.05.2011 09:25

Большое спасибо за разяснение


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