Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Область видимости переменной jquery (https://javascript.ru/forum/misc/34421-oblast-vidimosti-peremennojj-jquery.html)

Prazdnic 04.01.2013 17:50

Область видимости переменной 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);
})
});

Deff 04.01.2013 17:54

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);
 })
 });

Prazdnic 04.01.2013 18:04

Не получается. Все равно num1 становится объектом.

Dim@ 04.01.2013 18:08

и почему все начинают знакомство с JavaScript с JQuery? а не просто с нативного JS:-E

Deff 04.01.2013 18:09

Prazdnic,
Выложите необходимый HTML к скрипту

Prazdnic 04.01.2013 18:26

<!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>

Deff 04.01.2013 19:05

Ошибка выплывает отсель

Вы тут на автомате переопределили переменную
$('#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>

Prazdnic 04.01.2013 19:17

Заработало! Спасибо большое!


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