Область видимости переменной 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, время: 19:22. |