Область видимости переменной jquery
Доброго времени суток!
Недавно начал знакомство с программированием. В частности с javascript/jquery. Зашел в тупик с передачей переменных из одной функции в другую. Переменная передаётся как объект, а должна как строка. Подскажите пожалуйста что не так. Вот такой вот код: $(document).ready(function(e) { $('.knopka').click(function(){$('#tablo').append($ (this).text());}) $('#but1').click(function fun1(){ var num1 = $('#tablo').text(); $('#tablo').empty(); }) $('#but2').click(function fun2(num1){ fun1(); alert(num1); }) }); |
Prazdnic,
Область определения внутри функции вынесите её перед
$(document).ready(function(e) {
$('.knopka').click(function(){$('#tablo').append($ (this).text());})
var num1;
$('#but1').click(function fun1(){
num1 = $('#tablo').text();
$('#tablo').empty();
})
$('#but2').click(function fun2(){
fun1();
alert(num1);
})
});
|
Не получается. Все равно num1 становится объектом.
|
и почему все начинают знакомство с JavaScript с JQuery? а не просто с нативного JS:-E
|
Prazdnic,
Выложите необходимый HTML к скрипту |
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta charset="utf-8" /> <!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]--> <title></title> <meta name="keywords" content="" /> <meta name="description" content="" /> <link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" /> <script type="text/javascript" src="jquery.js"></script> <script type="text/javascript" src="js.js"></script> </head> <body><div id="wrapper"> <div id="content"> <div id="tablo"></div> <p class="knopka">1</p> <p class="knopka">2</p> <p id="but1">zapomnil</p> <p id="but2">pokazal</p> </div><!-- #content--></div><!-- #wrapper --></body> </html> |
Ошибка выплывает отсель
Вы тут на автомате переопределили переменную $('#but2').click(function fun2(num1){ alert(num1);
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta charset="utf-8" />
<!--[if IE]><script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
<title></title>
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="style.css" type="text/css" media="screen, projection" />
<style>
p[id^="but"] {
border:red solid 1px;
cursor:pointer;
padding:2px 12px;
width:54px;
}
</style>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$('.knopka').click(function(){$('#tablo').append($(this).text()+', ');});
var num1;
$('#but1').click(function fun1(){
num1 = $('#tablo').text().toString();
alert(num1);
$('#tablo').empty();
})
$('#but2').click(function fun2(){
//fun1();
alert(num1)
})
});
</script>
</head>
<body><div id="wrapper">
<div id="content">
<div id="tablo">tablo =></div>
<p class="knopka">1</p>
<p class="knopka">2</p>
<p id="but1">zapomnil</p>
<p id="but2">pokazal</p>
</div><!-- #content-->
</div><!-- #wrapper -->
</body>
</html>
|
Заработало! Спасибо большое!
|
| Часовой пояс GMT +3, время: 21:26. |