검색 결과 페이지의 일부로 사용하고있는 javascript에 문제가 있습니다. 누군가 도움을 줄 수 있기를 바랍니다. 나는 'currentAmount'변수가 'total'변수보다 적음을 확인하는 함수를 가지고있다. currentAmount가 total보다 작 으면 무언가를 수행하고 그렇지 않으면 아무것도하지 않습니다. currentAmount 항상 처음에 대부분의 경우 12됩니다 위에서자바 스크립트 관련 문제 <조건이 확실히 true 일 때 false를 반환하는 연산자
var currentAmount = document.getElementById('currentAmountHidField').value;
var total = '@Html.Raw(Json.Encode(Model.ResultCount))';
var tempScrollTop = $(window).scrollTop();
function loadMore() {
alert("current amount" + currentAmount);
alert("total" + total);
var listView = $("#propertyList").data("kendoListView");
if (currentAmount < total) {
alert("function is being run");
currentAmount = +currentAmount + 12;
document.getElementById('currentAmountHidField').value = currentAmount;
if (currentAmount >= total) {
$('#loadMoreButton').hide();
}
}
else {
alert("function is not being run");
}
listView.dataSource.pageSize(currentAmount);
listView.refresh();
tempScrollTop = $(window).scrollTop();
}
은이 완전히 잘 작동하지만, 전체 = 108, 자바 스크립트가의 다른 절을 처리하고있는 검색의 인스턴스에 대한 기능. 즉 "기능이 실행되고 있지 않음"이라는 경고가 표시됩니다. 나는 이유를 알 수 없다.
테스트를 위해 경고가 있습니다. 그러면 "currentAmount12"와 "total108"이 차례로 표시되고 "function not running"이 표시됩니다. 그건 말이 안되니? 심지어는 숫자로 처리되는 것을 확인하기 위해 2 개의 숫자 (예 : 108에서 12를 뺍니다)로 다른 것을 즉시 시도했습니다. 그리고 제가 말했듯이, 이것은 테스트 할 수 있었던 모든 다른 숫자의 조합에 대해 작동합니다.
하나의 검색 기준만으로도 12를 읽는 것은 108보다 많습니다. 흥미롭게도 loadMore 함수의 첫 번째 행에서 값을 12로 하드 코어 할 때 그에 따라 실행되지만 분명히 좋지는 않습니다 .
아무런 도움을받지 못 하셨다면 큰 도움이 될 것입니다. 왜 자바 스크립트는 12가 108보다 크다고 생각하니?
감사
* 1 단계 * "조건이 확실히에 해당하는 경우 자바 스크립트 <연산자는 false를 반환과 함께 문제"조건이 믿음의 이동하자 사실이다. 그렇지 않습니다. 만약 그렇다면 연산자는'거짓 '이 아니라'참 '을 반환 할 것입니다. ['선택 '은 깨지지 않았습니다.] (https://pragprog.com/the-pragmatic-programmer/extracts/tips). –
테스트 직전에 변수와 유형을 기록하십시오 :'console.log (typeof total, total);'.결과가 왜 그렇게 생각하는지 이해할 수 없습니다 (문자열은 숫자가 아님). –
문자열이 아닌 숫자를 비교하는지 확인하십시오. 'var total = Number ('@Html.raw ...'); ' –