Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Прошу разъяснить (https://javascript.ru/forum/jquery/58645-proshu-razyasnit.html)

kislov 02.10.2015 14:03

Прошу разъяснить
 
Добрый день.
Возник интересный вопрос.

Заранее известно, что aaa=true.
При этом в первом случае выполняется содержимое else. А во втором все работает правильно.

$("a").click(function(){
					aaa=$(".content-wrapper p").text()=="Спасибо. Ваша заявка принята. Наш менеджер свяжется с вами в ближайшее время";
					if(aaa==true){
					}else{
						window.onbeforeunload = function(e) {
							var msg = 'При переходе со страницы все введенные данные будут потеряны';
							if(e == undefined){
								e = window.event;
							}
							else{
								e.returnValue = msg;
							}
							return msg;
						}
					}
				});

$("a").click(function(){
					aaa=$(".content-wrapper p").text()=="Спасибо. Ваша заявка принята. Наш менеджер свяжется с вами в ближайшее время";
					if(aaa==true){
						window.onbeforeunload=null;
					}else{
						window.onbeforeunload = function(e) {
							var msg = 'При переходе со страницы все введенные данные будут потеряны';
							if(e == undefined){
								e = window.event;
							}
							else{
								e.returnValue = msg;
							}
							return msg;
						}
					}
				});

Заранее спасибо)

ksa 02.10.2015 14:14

Цитата:

Сообщение от kislov
Заранее известно, что aaa=true.
При этом в первом случае выполняется содержимое else. А во втором все работает правильно.

Бивас, тест!

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='http://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
</style>
<script type='text/javascript'>
$(function(){
	$("a").click(function(){
		aaa=$(".content-wrapper p").text()=="Спасибо. Ваша заявка принята. Наш менеджер свяжется с вами в ближайшее время";
		if(aaa==true){
			alert('Yes');
		}else{
			alert('No');
		};
	});
});
</script>
</head>
<body>
<div class='content-wrapper'>
	<p>Спасибо. Ваша заявка принята. Наш менеджер свяжется с вами в ближайшее время</p>
</div>
<a href=''>Test</a>
</body>
</html>

Таки все работает... :D

P.S.
Сколько недоверия к JS. :(

ksa 02.10.2015 14:15

Цитата:

Сообщение от kislov
if(aaa==true){}

Достаточно написать
if(aaa){}

kislov 02.10.2015 14:29

Странно. пробую на jsfiddle свой пример первый = все работает.
А на сайте где необходимо реализовать не работает...
Работает только при втором варианте...
Цитата:

Достаточно написать
if(aaa){}

Спасибо) не знал

ksa 02.10.2015 14:32

Цитата:

Сообщение от kislov
А на сайте где необходимо реализовать не работает...

Просто посмотри чему равно то aaa...

kislov 02.10.2015 14:35

Цитата:

Просто посмотри чему равно то aaa...
true оно равно

ksa 02.10.2015 14:52

Цитата:

Сообщение от kislov
true оно равно

При истином условии по else ну никак не пойдет... Это аксиома.

kislov 02.10.2015 15:04

Цитата:

При истином условии по else ну никак не пойдет... Это аксиома.
Поэтому вопрос сюда и задавал. Ладно, вопрос исчерпан) Тему можно закрывать))) Спасибо за помощь)


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