JavaScript
Including JavaScript Files
{% block body_javascript %}
{{ parent() }} {# Include default scripts #}
{# Your theme scripts #}
<script src="{{ asset('assets/theme/my-theme/js/main.js') }}"></script>
<script src="{{ asset('assets/theme/my-theme/js/components/charts.js') }}"></script>
{% endblock %}JavaScript Structure
// public/assets/theme/my-theme/js/main.js
(function() {
'use strict';
// Initialize when DOM is ready
document.addEventListener('DOMContentLoaded', function() {
console.log('Theme JavaScript loaded');
initTheme();
initComponents();
initEventListeners();
});
function initTheme() {
// Theme initialization logic
loadUserPreferences();
applyThemeSettings();
}
function initComponents() {
// Initialize custom components
initTooltips();
initPopovers();
initCharts();
}
function initEventListeners() {
// Set up event listeners
setupNavigationHandlers();
setupFormValidation();
setupAjaxHandlers();
}
// Export functions to global scope if needed
window.MyTheme = {
refresh: initTheme,
notify: showNotification
};
})();Common JavaScript Patterns
AJAX Requests
Event Delegation
Form Validation
Notifications
Working with Bootstrap JavaScript
Useful Patterns
Debouncing
Throttling
Local Storage
Confirmation Dialogs
Working with Forms
Dynamic Form Fields
AJAX Form Submission
Performance Optimization
Lazy Loading Images
Minimize DOM Manipulation
Best Practices
Debugging
Related Guides
External Resources
Last updated