Неопределенная переменная

olgatms

Пользователь
Регистрация
31.05.14
Сообщения
2
Реакции
0
Баллы
1
У меня есть обработчик кликов на кнопке для запуска функции разбиения на страницы JavaScript. По какой-то причине я получаю сообщение об ошибке: FilterSet не определен.
Неопределенная переменная
Вверху моей php-страницы:

Код:
function Search()
{ this.ID = 0; this.filter = "highest plays"; this.page = 1; this.search = ""; this.fetch = function() { var filterSet = this.filter; var pageSet = this.page; this.page = this.page + 1; $.ajax({ method: "POST", url: "php/fetch_search_js.php", dataType: 'json', data: { filter: filterSet, pageVal:pageSet} }).done(function( data ) { if(data.message == "success") { $('#searchresults').append(data.html); } }); } this.fetchSearch = function() { alert("fetch search"); } this.setFilter(filterSet) { this.filter = filterSet; } this.setSearch(searchSet) { this.search = searchSet; }
}

Код (разметка): Класс JavaScript
echo '<script> var search = new Search(); search.setSearch('. '\'' . urldecode($_GET['search']) . '\'' .'); $(document).ready(function(){ $( "#loadmore" ).click(function() { search.fetchSearch(); }); }); </script>';
Код (разметка):
 

Seolkin

Пользователь
Регистрация
21.01.12
Сообщения
3
Реакции
0
Баллы
1
Я не вижу вызова Search.fetch(), но если вы делаете это из обработчика событий, помните, что object.this в этих случаях указывает на FUNCTION, а не на родительский объект. Чаще всего - даже несмотря на крушение поезда из-за некомпетентности и невежества разработчиков, которым является jQuery, - это основная причина того, что переменная, объявленная в объекте, не существует ни в одном из методов этого объекта.

В значительной степени, когда вы пытаетесь установить «filterSet = this.filter», у FUNCTION даже нет свойства «filter».

Обычно это можно обойти, просто используя локальные переменные в родительском объекте вместо того, чтобы назначать их в качестве свойств.
 
Сверху Снизу