Перепутался с .bind () и .unbind () в jQuery - PullRequest
0 голосов
/ 16 февраля 2011

Хорошо, у меня есть два способа выполнить обновление div

$('#player').load('/videos/index');

в моем приложении rails.Один через ссылку

<a href="#" id="nextb" onclick="$('#player').load('/videos/index').unbind();">next</a>

другой через ярлык этой кнопки.И они работают нормально, пока я не обнаружил, что если я обновлю плеер два раза подряд по ссылке, а затем через ярлык, он загружает div дважды.Если я обновлю ссылку три раза подряд, чем ярлык, то она загружается в div три раза.И так далее. Итак, я начал пытаться настраивать привязки (как я и предполагал, это и было причиной), но результат был больше.Вот моя испорченная в связке часть приложения. Js

 $(document).ready(function(){;
$(document).bind('keydown', 'space', function() {
    $('#player').unbind('load');    
    $('#player').load('/videos/index');
    $(document).unbind();
    }); 
 });

Я пытался щелкнуть ссылку через ярлык, но тот же результат, поэтому я предполагаю, что проблема в загрузкеЛюбые предложения помогут.

1 Ответ

1 голос
/ 16 февраля 2011

Лучший способ избежать двойного обновления - иметь флаг состояния, указывающий, может ли он загружаться снова или загружается:

$(document).ready(function() {
    var loading = false;
    function reloadDiv() {
        if(!loading) {
            loading = true;
            $('#player').load('/videos/index', null, function() { loading = false; });
        }
    }  
    $('#nextb').click(reloadDiv);
    $(document).bind('keydown', 'space', reloadDiv);
});

Удачи!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...