Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Область видимых переменых
 
 автор: RaiDeRz   (28.08.2008 в 10:29)   письмо автору
 
 

У меня такая проблемма щас сразу приведу код:

function tab_slider_stop() {
    window.ts_action = false;
}

function ts_scroll() {
    var left = $('#menu').scrollLeft();
    if(window.ts_action == true) {
        $('#menu').scrollLeft(left+1);
        setTimeout('tab_slider_left();', 10)
    }
}

function tab_slider_right() {
    
    window.ts_action = true;
    ts_scroll();
    
}


Вызываеться:
<a href="#" onmouseover="tab_slider_right();" onmouseout="tab_slider_stop();">></a>


Вообщем проблемма заключаеться в том что "window.ts_action" в функции tab_slider_stop() не меняет ничего, тоесть получаеться "window.ts_action" это не глобальная переменная, она почему-то там локальная... Как мне это реализовать чтобы window.ts_action была глобальной везде? p.s. много че пробовал но так ничего и не получилось, хотя раньше как-то делал

  Ответить  
 
 автор: sim5   (28.08.2008 в 11:00)   письмо автору
 
   для: RaiDeRz   (28.08.2008 в 10:29)
 

Вне функции ее объявите.

  Ответить  
 
 автор: RaiDeRz   (28.08.2008 в 11:13)   письмо автору
 
   для: sim5   (28.08.2008 в 11:00)
 

Уже пробовал она получаеться глобальной тоесть внутри функции значение ее видно но при изменении ее значения в фукнции везде видеться старый результат, тоесть она все равно получаеться локальной в функции

  Ответить  
 
 автор: sim5   (28.08.2008 в 11:26)   письмо автору
 
   для: RaiDeRz   (28.08.2008 в 11:13)
 

Вот только не надо выдумывать несуществующих проблем в отношении видимости.
<script>
var n = 1;
function newNum() {
  alert(n);
  n = 5;
}
function viewNum() {
  alert(n);
}
</script>

<input type="button" value="SetNum" onclick="newNum()">
<input type="button" value="ViewNum" onclick="viewNum()">

  Ответить  
 
 автор: RaiDeRz   (29.08.2008 в 11:21)   письмо автору
 
   для: sim5   (28.08.2008 в 11:26)
 

Может быть так то и норм работает, но почему у меня в 1 посте я писал код не работает на 1-й самой функции?

Даже если так делать:
var ts_action = false;

function tab_slider_stop() {
    ts_action = false;
}

function ts_scroll() {
    var left = $('#menu').scrollLeft();
    if(ts_action == true) {
        $('#menu').scrollLeft(left+1);
        setTimeout('tab_slider_left();', 10)
    }
}

function tab_slider_right() {
    
    ts_action = true;
    ts_scroll();
    
}

  Ответить  
 
 автор: sim5   (29.08.2008 в 11:56)   письмо автору
 
   для: RaiDeRz   (29.08.2008 в 11:21)
 

Сколько вам можно объяснть?

<script>
//объявляем глобальную переменную
var ts_action = true; //false - уж не знаю как вам надо инициализировать
function tab_slider_stop() { 
    ts_action = false; //хотим так


function ts_scroll() { 
    var left = $('#menu').scrollLeft(); 
    if(ts_action == true) { 
        $('#menu').scrollLeft(left+1); 
        setTimeout('tab_slider_left();', 10) 
    } 


function tab_slider_right() { 
    ts_action = true; //а тут иначе 
    ts_scroll(); 
}
</script>

  Ответить  
 
 автор: RaiDeRz   (29.08.2008 в 13:13)   письмо автору
 
   для: sim5   (29.08.2008 в 11:56)
 

Ну так я так и делал но почему-то после tab_slider_stop выполняю, ts_scroll не останавливаеться, когда alert делаю в ts_scroll он пишит что переменная все равно true, а не как должна быть false. По теории же все должно работать а на практике нет.

  Ответить  
 
 автор: sim5   (29.08.2008 в 13:26)   письмо автору
 
   для: RaiDeRz   (29.08.2008 в 13:13)
 

Значит у вас не верна логика работы вашего сценария, значит не устанавливаете вы переменную в false.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования