1document.addEventListener('DOMContentLoaded', function () { 2 const buttons = document.querySelectorAll('#scholarship-category-buttons .custom-select'); 3 const listContainer = document.getElementById('scholarship-list-container'); 4 5 if (!buttons.length || !listContainer) return; 6 7 buttons.forEach(btn => { 8 btn.addEventListener('click', function () { 9 // Remove active from all 10 buttons.forEach(b => b.classList.remove('active')); 11 this.classList.add('active'); 12 13 const category = this.getAttribute('data-category'); 14 listContainer.innerHTML = '<p>Loading...</p>'; 15 16 fetch(scholarshipListViewAjax.ajax_url, { 17 method: 'POST', 18 headers: { 19 'Content-Type': 'application/x-www-form-urlencoded', 20 }, 21 body: 'action=scholarship_list_filter&category=' + encodeURIComponent(category) 22 }) 23 .then(response => response.text()) 24 .then(html => { 25 listContainer.innerHTML = html; 26 }) 27 .catch(() => { 28 listContainer.innerHTML = '<p>Error loading scholarships.</p>'; 29 }); 30 }); 31 }); 32});
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.