2010-08-30 4 views
-2

В document.ready() У меня есть:Почему эта переменная не обновляется?

$('#menu_indicator').append('<p>' + currPage + '/' + pageLimit + '</p>'); 

pageLimit всегда один номер, который не меняется на протяжении всего кода. У меня это так, что когда пользователь нажимает кнопку, он меняет currPage на другое число. (эта часть отсутствует в документе .ready();)

Почему он не обновляет его в индикаторе? Любые идеи, чтобы исправить это?

Благодаря

+3

вы можете дать ссылку пример, или отправить свой HTML-код, а также JavaScript? – Nalum

+0

Два ответа там объясняют вашу проблему. Вам нужно обновлять текст каждый раз, когда изменения currPage. –

ответ

2

Причина ваш код не работает, как вы ожидаете, что это то, что вы только добавить его один раз, он не придает «живой» обработчик или что-то вроде него.

Если вы хотите, чтобы индикатор изменить каждый раз, когда вы устанавливаете новое значение для currPage Я бы построить функцию, как так:

function setCurrentPage(page) { 
    currPage = page; 

    $("#menu_indicator p").html(currPage + "/" + pageLimit); 
} 

Это, конечно, предполагающей currPage и pageLimit объявлены в международном масштабе

2

Demo для код ниже: http://jsbin.com/oruqa3

HTML:

<input type="button" value="click" /> 
<div id="menu"></div> 

JavaScript:

var currPage = 1, pageLimit = 20; 
$(function() { 
    $('input[type=button]').click(function() { 
    if(currPage <=pageLimit) { 
    call(); 
    currPage++; 
    } 
    }); 
}); 


var call = function() { 
    $('#menu').html('<p>' + currPage + '/' + pageLimit + '</p>'); 
    } 
Смежные вопросы