문제

나는 새로운 자바스크립트와는 데 문제가 있으로 이 스크립트입니다.그것의 일부 웹 게임과 스크립트가한다고 가정 페이지를 새로 고침할 때까지 플레이어 승 또는 잃는다.몇 가지 이유로 그것을 멈추지 않는 상쾌한,나는 알림 기능을 확인하는 경우 이 함수 작품과를 얻을 경고 하지만 그것은 여전히 계속 상쾌한 페이지.무엇이 잘못된 것입니까?

var t;

$(document).ready(function () {
    intervals();
});
function intervals() {
    t = self.setInterval('refreshData()', 10000);
}
function youWin() {
    var f = $('#status:contains("YOU ARE THE WINNER!")');
    if (f.length > 0) {
        alert("YOU ARE THE WINNER!");
        t = clearInterval(t);
    }
}
function youlose() {
    var f = $('#status:contains("You lost!")');
    if (f.length > 0) {
        alert("You lost!");
        t = clearInterval(t);
    }
}
function refreshData() {
    $('#ajaxGame').load('RefreshCurrentPlayerServlet #ajaxGame');
    youWin();
    youlose();
}
도움이 되었습니까?

해결책

당신을 수정해야에 대한 참조 self.load() 전화입니다.

.load() 비동기하지 않도록 전체를 호출하기 전에 youWin()youLose() 후에 바로 그것.당신이 필요 완성 기능을 확인할 수 있도록 승패후 .load() 가 성공적으로 완료됩니다.

refreshData() 해야은 다음과 같은 폴더 구조를 가집니다:

function refreshData() {
    $('#ajaxGame').load('RefreshCurrentPlayerServlet #ajaxGame', function() {
        youWin();
        youlose();
    });
}

당신은 또한 change this:

t= self.setInterval('refreshData()',10000);

다.

t = window.setInterval(refreshData, 10000);

나는 그렇게 생각하지 않는다 self 도를 정의하도록 할 수 있도 문제가 발생하고 사용해야 합니다 기능 직접 참조보다에 넣어는 문자열을 사용합니다.

그리고,정리 문제,변경해야 합니다 모두 사건의 this:

t = clearInterval(t);

다.

clearInterval(t);

여기에 청소 버전의 코드도 없는 세계의 변수하고 불필요한 기능을 정의:

$(document).ready(function() {
    var t = window.setInterval(function() {
        $('#ajaxGame').load('RefreshCurrentPlayerServlet #ajaxGame', function() {
            youWin();
            youlose();
        });
    }, 10000);

    function youWin()  {
        if ($('#status:contains("YOU ARE THE WINNER!")').length) {
            alert("YOU ARE THE WINNER!");
            clearInterval(t);
        }
    }

    function youlose() {
        if ($('#status:contains("You lost!")').length) {
            alert("You lost!");
            clearInterval(t);
        }
    }

});
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top