Cultural Experience
About This Attraction
Tra Que Vegetable Village is a small farming community located just outside Hoi An, Vietnam. Known for its lush gardens and organic farming methods, the village provides an opportunity to learn about traditional Vietnamese agriculture. Visitors can explore the fields and see a variety of vegetables and herbs being cultivated by local farmers. The Tra Que Vegetable Village opening hours are generally from early morning until late afternoon, allowing plenty of time to experience the farming activities.
The village also offers hands-on experiences such as farming lessons and cooking classes, where you can prepare dishes using fresh ingredients straight from the garden. Its an educational experience that provides insight into the local way of life and sustainable agriculture practices. Additionally, visitors can enjoy meals prepared with locally sourced produce at nearby eateries. The combination of practical learning and delicious food makes Tra Que Vegetable Village a unique destination in Hoi An.
Location Details
Address
Tra Que Village, Cam Ha, Hoi An, Quang Nam, Vietnam
Visitor Information
Pricing & Ratings
Ticket Prices
Adult
Free
Child
Free
Student
Free
Senior
Free
Opening Hours & Booking
Open
Days
Daily
Hours
8:00 AM - 5:00 PM
Seasonality
Year-round
Booking
Booking Required?
No
Nearby Attractions
An Bang Beach in Hoi An, Vietnam, is a popular destination known for its long…
Learn More
Ancient Town in Hoi An is a UNESCO World Heritage Site located in Vietnam. It…
Learn More
The Japanese Covered Bridge in Hoi An is an iconic historical landmark, showcasing the unique…
Learn More
The Perfume River in Hue, Vietnam is a significant waterway that flows through the city,…
Learn More
The Imperial City in Hue is a fascinating historical site in Vietnam, known for its…
Learn More
Thien Mu Pagoda, located in the city of Hue, Vietnam, is an iconic Buddhist temple…
Learn More
Vinpearl Safari in Phu Quoc is Vietnams first and largest semi-wildlife conservation park. It covers…
Learn More
Tad Fane Waterfall is located in the Bolaven Plateau near Pakse, Laos. Known for its…
Learn More
The Bolaven Plateau in Pakse, Laos, is a popular destination known for its cool climate…
Learn More
Wat Phou is an ancient Khmer temple complex located in southern Laos, near the town…
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';
}
});
});
}
});