Bazaar
About This Attraction
Khan El Khalili is a famous bazaar in Cairo, Egypt, known for its diverse shops and vibrant atmosphere. Established in the 14th century, it offers a wide range of goods including jewelry, textiles, spices, and souvenirs. Visitors can wander through narrow alleyways filled with shops and stalls, each offering unique items. The market is also home to several traditional cafes where one can take a break and enjoy local refreshments.
Khan El Khalili opening hours are generally from morning until late at night, making it convenient for tourists and locals alike. While shopping is a major attraction, the markets historic architecture adds to its appeal. The area is easily accessible by public transportation or taxi, and it is advisable to visit during weekdays to avoid crowds. Overall, Khan El Khalili provides a memorable shopping experience in the heart of Cairo.
Location Details
Address
El-Gamaleya, El Gamaliya, Cairo Governorate, Egypt
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Monday to Sunday
Hours
9:00 AM to 11:00 PM
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
The Egyptian Museum in Cairo is one of the most important museums in the world,…
Learn More
The Pyramids of Giza are located on the outskirts of Cairo, Egypt. This archaeological site…
Learn More
The Catacombs of Kom El Shoqafa in Alexandria, Egypt, are an ancient burial site that…
Learn More
Montaza Palace in Alexandria is a popular historical site located along the Mediterranean coastline. Built…
Learn More
The Bibliotheca Alexandrina in Alexandria, Egypt, serves as a significant cultural landmark and modern library.…
Learn More
The Citadel of Qaitbay is a 15th-century fortress located on the Mediterranean coast of Alexandria,…
Learn More
Mount Sinai, located near the town of Dahab in Egypt, is a significant historical and…
Learn More
Ras Abu Galum is a protected area located near Dahab, Egypt, known for its stunning…
Learn More
The Blue Hole in Dahab is a popular diving and snorkeling site located on the…
Learn More
Dahab Lagoon is a popular destination in the town of Dahab, located on the southeast…
Learn More
";
}
// Initialize modal controls
const initModalControls = function() {
console.log('Initializing modal controls');
const modal = document.getElementById('attraction-modal');
const closeBtn = document.querySelector('.attraction-modal-close');
if (closeBtn) {
closeBtn.addEventListener('click', function() {
modal.style.display = 'none';
document.body.style.overflow = '';
});
}
window.addEventListener('click', function(event) {
if (event.target === modal) {
modal.style.display = 'none';
document.body.style.overflow = '';
}
});
// Make attraction cards clickable
const attractionCards = document.querySelectorAll('.attraction-card');
console.log('Found ' + attractionCards.length + ' attraction cards');
attractionCards.forEach(card => {
card.addEventListener('click', function(e) {
openModalWithCardData(this);
});
});
};
// Function to open modal with card data
const openModalWithCardData = function(card) {
// Get data from hidden div
const data = card.querySelector('.attraction-full-data');
if (!data) {
console.error('No attraction data found in card');
return;
}
const modal = document.getElementById('attraction-modal');
if (!modal) {
console.error('Modal element still not found after creation attempt');
return;
}
// Helper function to safely get element text
function getElementText(selector) {
const element = data.querySelector(selector);
return element ? element.textContent : '';
}
try {
// Basic Info
document.getElementById('attraction-modal-title').textContent = getElementText('.attraction-name');
document.getElementById('attraction-modal-type').textContent = getElementText('.attraction-type-full');
document.getElementById('attraction-modal-description').textContent = getElementText('.attraction-description-full');
// Reset all containers to hidden
['attraction-modal-hours-container', 'attraction-modal-price-container',
'attraction-modal-address-container', 'attraction-modal-image-container'].forEach(id => {
const container = document.getElementById(id);
if (container) container.style.display = 'none';
});
// Rating
const ratingText = getElementText('.attraction-rating-full');
if (ratingText) {
const ratingValue = parseFloat(ratingText);
if (!isNaN(ratingValue)) {
const ratingValueEl = document.getElementById('attraction-modal-rating-value');
const ratingFillEl = document.getElementById('attraction-modal-rating-fill');
if (ratingValueEl) ratingValueEl.textContent = ratingValue.toFixed(1) + '/10';
if (ratingFillEl) ratingFillEl.style.width = (ratingValue * 10) + '%';
}
}
// Show the modal
modal.style.display = 'block';
document.body.style.overflow = 'hidden'; // Prevent background scrolling
console.log('Modal opened successfully');
} catch (error) {
console.error('Error opening modal:', error);
}
};
// Try to create the modal
const created = createModal();
console.log('Modal created:', created);
// If not created (already exists), initialize the controls
if (!created) {
initModalControls();
}
// Also initialize distance toggle
const distanceToggle = document.getElementById('distance-unit-toggle');
if (distanceToggle) {
distanceToggle.addEventListener('change', function() {
const showKm = this.checked;
// Update toggle labels
const labels = document.querySelectorAll('.toggle-label');
if (labels.length >= 2) {
labels[0].style.opacity = showKm ? '0.5' : '1';
labels[1].style.opacity = showKm ? '1' : '0.5';
}
// Update all distance displays
document.querySelectorAll('.nearby-attraction-card').forEach(card => {
const kmEl = card.querySelector('.distance-km');
const miEl = card.querySelector('.distance-mi');
if (kmEl && miEl) {
kmEl.style.display = showKm ? 'inline' : 'none';
miEl.style.display = showKm ? 'none' : 'inline';
}
});
});
}
});