Вы сохраняете в переменной , что ссылку на элемент , и используете ее для добавления к документу. Вы должны обернуть элемент перед вызовом метода после.
Кроме того, при вызове ajax вы устанавливаете значение dataType в html , когда кажется, что вы ожидаете json .
Итак, в итоге ваш код должен выглядеть так:
$("#category li").one('click', function() {
var $that = $(this);
var catId = $that.attr("id");
$.ajax({
type: 'GET',
url: ''+catId,
dataType: 'json',
data: { category: catId},
beforeSend: function() {
$("#loader").show();
}
})
.done(function(data) {
data.forEach(function(category) {
$that.after(''+category.id+' ');
});
})
.fail(function() {
alert( "Fetch failed." );
});
});
Да, это - законное использование глобальной переменной. Если Вы быть бы, раздав объект контекста, который эквивалентен этому глобальному, другая опция, как Вы упомянули.
Так как я предполагаю, что Вы используете несколько файлов (модули), почему бы не что-то как:
import io
io.print('hello, world')
io.clear()
Это - распространенный способ программы, которые имеют более сложные потребности ввода-вывода, чем простая печать делает вещи как вход.
Да, я думаю так.
Другая возможность состояла бы в том, чтобы создать модуль loggerModule
это имеет функции как print()
и write()
, но это только незначительно было бы лучше.
Нет.
Переменные слишком конкретны, чтобы быть розданными в глобальном пространстве имен. Скройте их в статических функциях/классах вместо этого, которые могут сделать волшебные вещи им во время выполнения (или назвать другие полностью).
Рассмотрите то, что происходит, если IO может периодически изменять состояние или если это должно заблокироваться некоторое время (как много сокетов, делают).
Рассмотрите то, что происходит, если тот же блок кода включен многократно. Переменный экземпляр становится дублированным также?
Рассмотрите то, что происходит, если Вы хотите иметь версию 2 той же переменной. Что, если Вы хотите изменить его интерфейс? Необходимо ли изменить весь код, который ссылается на него?
Действительно имеет смысл заражать весь код, который использует переменную со знанием всех способов, которыми это может разложиться?