У меня есть следующий класс javascript, и по какой-то причине текущее свойство не установлено равным -1, когда я закончил загрузку записей (или я не могу правильно получить доступ к свойству из экземпляра класса). Я новичок в javascript, поэтому любая помощь будет оценена.Доступ к свойствам Javascript
var MyLib = function() {
this.current = 0;
MyLib.prototype.loadMore = function (id, loadingDivId, url) {
if (this.current > -1) {
this.current++;
$(loadingDivId).html("<h3>Loading more records please wait...</h3>");
$.get(url + this.current, function (data) {
if (data != '') {
$(id).append(data);
$(loadingDivId).empty();
} else {
this.current = -1; // seems like this isn't being set
$(loadingDivId).html("<h3><i>-- No more results -- </i></h3>");
}
});
}
}
};
Вот как я звоню его
<script type="text/javascript">
$(function() {
var lib = new MyLib();
$('#loadMore').click(function() {
if (lib.current > -1) {
lib.loadMore("#results", "#loading", '/home/search/');
if (lib.current == -1) {
// Having problems getting into this portion
$("#loadMore").hide();
}
}
return false;
});
});
</script>
Я не могу проверить вещи AJAX очень легко прямо сейчас; вы проверяли, что существует аргумент 'data'? Я предполагаю, что ваш if/else терпит неудачу, и он перезагружает 'this.current' до -1. – sdleihssirhc
Я не толстые данные, это проблема, так как я вижу «Больше не найдено результатов». – zSynopsis
Я обновил [мой ответ] (http://stackoverflow.com/questions/4831519/javascript-property-accessing-issues/4831604#4831604). Я думаю, что сначала была функция обратного вызова в неправильном месте. – user113716