Каждый раз append() вызывает тормоза, да и функция checkableItem() тоже весьма рессурсоёмкая. Да и сам по себе вызов функции весьма притормаживает выполнение. То есть, лучше прописать прямо в коде. Причём, именно добавлять в текстовую переменную сгенерированный html. А ховер-эффект с помощью css :hover сделать (а так же для :checked, чтоб отдельного класса не прописывать, ну и там ещё какой-то аттрибут my_type задаётся и при этом display:none - так тоже можно прописать в css .st-checkable-item[my_type] {display:none}).
var ch = '', html='';
$.each(json.hotels, function(i) {
// Если итем присутствует в GET запросе.
ch =qs && qs.hotelId && qs.hotelId.length > 0 && $.inArray(json.hotels[i].id_extra, qs.hotelId) >= 0 // это выражение и так даст true или false
html+='<div class="st-checkable-item" unselectable="on"><input id="item_'+config.value+'" type="checkbox" value="'+json.hotels[i].id_extra+'" data-altvalue="+config.altValue+'"'+(config.ch?' checked':'')+'><label for="item_'+config.value+'" unselectable="on"><span>' + json.hotels[i].type + " " + json.hotels[i].name + '</span></label></div>'
// ну и т.д., я не все параметры тут вписал в код, но думаю, что ясно как остальные дописать.
});
$("#st-all-hotels-list .st-listbox-content").append(html)
console.timeEnd('create list');