Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как передать переменную между двумя функциями hover (https://javascript.ru/forum/jquery/37795-kak-peredat-peremennuyu-mezhdu-dvumya-funkciyami-hover.html)

jeysmook 07.05.2013 17:50

Как передать переменную между двумя функциями hover
 
Как передать переменную между двумя функциями hover(function(){}, function(){})?
$('.sel').hover(function(){
		var b = $(this).find('.as').outerWidth(); //Из этой функции нужно передать b в следующую функцию
	}, function(){		
                alert(b) //Вот тут она должна оказаться
	})

animhotep 07.05.2013 18:09

можно вынести переменную в глобальную область видимости
var b;
$('.sel').hover(function(){
		b = $(this).find('.as').outerWidth(); //Из этой функции нужно передать b в следующую функцию
	}, function(){		
                alert(b) //Вот тут она должна оказаться
	})

jeysmook 07.05.2013 19:30

animhotep,
Спасибо. Это единственный способ? Я просто такой тоже сделал, интересно стало можно ли по другому?

ksa 08.05.2013 08:32

Цитата:

Сообщение от jeysmook
можно ли по другому?

Как вариант, ограничить область видимости переменной замыканием...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
$(document).ready(function(){
	(function (){
		var b=1;
		$('a').hover(function(){
			b = 2;
		}, function(){		
			alert(b) 
		});
	})();
});
</script>
</head>
<body>
<html> 
<body> 
<a href='#'>test</a>
</body>
</html>

jeysmook 08.05.2013 15:51

ksa,
Спасибо, но только он почти не отличается от предыдущего)

tsigel 08.05.2013 15:56

jeysmook, он отличается тем, что глобальная видимость не засоряется лишними переменными, т.к. создавать много глобальных переменных - плохой тон.

jeysmook 08.05.2013 15:57

tsigel,
Понятно, спасибо за объяснения.


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