• Skip to primary navigation
  • Skip to main content
  • Skip to primary sidebar

Simple Daily Eats

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Simple Daily Eats

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

Charred Chile–Marinated Grilled Chicken Tacos

Jump to Recipe·Print Recipe

If you’re looking for a vibrant and flavorful meal that can easily elevate your weeknight dinners or impress your friends at gatherings, you’ve come to the right place! These Charred Chile–Marinated Grilled Chicken Tacos are a true celebration of bold flavors and fresh ingredients. The smoky grilled chicken, paired with homemade tortillas and zesty tomatillo salsa, creates a dish that’s not just satisfying but also bursting with personality.

Charred Chile–Marinated Grilled Chicken Tacos image 2

What makes this recipe even more special is its versatility; it’s perfect for casual family dinners, festive taco nights, or even meal prep for the week ahead. Each bite is a little adventure, taking you straight to the heart of Mexican cuisine!

Charred Chile–Marinated Grilled Chicken Tacos image 3
Charred Chile–Marinated Grilled Chicken Tacos image 4

Why You’ll Love This Recipe

  • Easy to prepare: With simple steps and readily available ingredients, you’ll wonder why you didn’t try this sooner!
  • Packed with flavor: The marination process infuses the chicken with delightful spices, making every bite unforgettable.
  • Family-friendly: Kids and adults alike will love customizing their tacos with their favorite toppings.
  • Make-ahead convenience: Marinate the chicken in advance for an effortless dinner option later in the week.
  • Health-conscious choice: Enjoy a hearty meal that keeps things wholesome without sacrificing taste.

Ingredients You’ll Need

When it comes to making these delicious tacos, you’ll find that the ingredients are simple yet wholesome. Let’s gather everything we need!

For the Marinade

  • 6 medium garlic cloves, unpeeled
  • 5 medium-size dried guajillo chiles (about 1 1/4 ounces)
  • 3 medium-size dried chiles de árbol
  • 4 whole allspice
  • 2 small white or yellow onions (about 1 pound), cut into 1-inch wedges with root ends left intact
  • 1 (1-inch) cinnamon stick
  • 1.5 tablespoons kosher salt
  • 0.25 teaspoon black pepper
  • 0.5 cup water

For the Tacos

  • 6 bone-in, skin-on chicken thighs (about 1 pound, 12 ounces), trimmed
  • 2 teaspoons kosher salt
  • 12 (4 1/2-inch) Homemade Corn Tortillas (see Note)
  • Tomatillo Salsa Cruda (see Note)

Variations

This recipe is wonderfully flexible, allowing you to switch things up based on your preferences or what you have on hand. Here are some fun ideas:

  • Swap the protein: Try using boneless chicken breasts or grilled tofu for a plant-based option.
  • Add some heat: Include extra spicy peppers in the marinade if you like your tacos with a kick!
  • Go vegetarian: Replace the chicken with roasted vegetables like zucchini and bell peppers for a colorful veggie taco.
  • Experiment with toppings: Get creative with toppings like avocado slices, pickled onions, or fresh cilantro for added texture and flavor.

How to Make Charred Chile–Marinated Grilled Chicken Tacos

Step 1: Prepare the Marinade

Heat a large cast-iron skillet over medium-high heat. Add unpeeled garlic and dried chiles; cook them until they’re nicely charred—this step intensifies their flavors! Transfer them to a blender after removing stems from the chiles (don’t worry about the seeds). Set aside your charred garlic.

Step 2: Char the Onions

Return your skillet to heat and arrange onion wedges cut side down. You want them beautifully charred on both sides—this caramelization brings out their natural sweetness! Once ready, add these to your blender along with your garlic.

Step 3: Blend It All Together

Peel off the skins from your garlic cloves and add them along with allspice, cinnamon stick, salt, black pepper, and water into your blender. Pulse until you have a smooth marinade—this rich mixture will be responsible for infusing deep flavors into your chicken.

Step 4: Marinate the Chicken

Place your chicken thighs in a large bowl and pour that beautiful marinade over them. Get in there with your hands to ensure each piece is evenly coated. Cover it up and let it marinate in the refrigerator—this step is key for maximizing flavor!

Step 5: Prepare for Grilling

Remove excess marinade from the chicken before grilling and sprinkle it lightly with salt. Letting it sit at room temperature helps achieve that perfect grill mark while keeping it juicy inside.

Step 6: Grill Time!

Set up your charcoal grill by lighting briquettes until they’re covered in gray ash. Grill those thighs skin-side down over direct heat until they’re beautifully charred—flipping occasionally adds depth of flavor. Then move them away from direct heat until cooked through.

Step 7: Assemble Your Tacos

Once rested and cool enough to handle, remove bones from chicken thighs. Chop up that smoky meat into bite-sized pieces before layering onto warm tortillas. Top generously with refreshing tomatillo salsa cruda, and voilà—you’re ready to enjoy these delectable tacos!

Pro Tips for Making Charred Chile–Marinated Grilled Chicken Tacos

To ensure your tacos are bursting with flavor and perfectly cooked, follow these helpful tips.

  • Use fresh ingredients: Fresh produce will enhance the flavor of your salsa and toppings, making your tacos even more delicious.
  • Don’t skip marinating: Letting the chicken marinate for at least an hour allows the flavors to penetrate deeply, resulting in juicy, flavorful meat.
  • Monitor grill temperature: Ensure your grill is at the right temperature before adding the chicken. This helps achieve that beautiful char while keeping the meat moist inside.
  • Let it rest: Allowing the chicken to rest after grilling lets the juices redistribute, making every bite tender and juicy.
  • Serve immediately: Tacos are best enjoyed fresh off the grill. Assemble them just before serving to keep everything warm and inviting.

How to Serve Charred Chile–Marinated Grilled Chicken Tacos

Presenting your tacos beautifully can enhance the dining experience. Here are some ideas to make your meal unforgettable.

Garnishes

  • Chopped cilantro: Adds a burst of freshness that complements the smoky flavor of the chicken.
  • Diced avocado: Creamy avocado provides a rich contrast to the spicy elements, balancing out the flavors nicely.
  • Lime wedges: A squeeze of fresh lime juice brightens up each taco and enhances all the flavors.

Side Dishes

  • Mexican Street Corn (Elote): Grilled corn on the cob slathered in mayo, cotija cheese, chili powder, and lime for a sweet and savory side that pairs wonderfully with tacos.
  • Cilantro-Lime Rice: Fluffy rice infused with lime juice and fresh cilantro serves as a light and zesty complement to your meal.
  • Black Bean Salad: A refreshing mix of black beans, corn, red onion, and bell peppers dressed in a lime vinaigrette adds protein and fiber while enhancing the overall flavor profile.
  • Pico de Gallo: This fresh salsa made from tomatoes, onion, cilantro, jalapeño, and lime juice brings a crisp texture and vibrant flavor that ties everything together beautifully.

Make Ahead and Storage

Charred Chile–Marinated Grilled Chicken Tacos are perfect for meal prep, allowing you to enjoy delicious flavors throughout the week without the hassle.

Storing Leftovers

  • Store any leftover chicken in an airtight container in the refrigerator for up to 3 days.
  • Keep tortillas separately wrapped in a kitchen towel or stored in a plastic bag to maintain freshness.

Freezing

  • Cool the cooked chicken completely before freezing it in a freezer-safe bag or container.
  • It can be frozen for up to 3 months. Just label with the date for easy reference.

Reheating

  • Thaw frozen chicken overnight in the refrigerator before reheating.
  • Reheat chicken in a skillet over medium heat until warmed through, about 5-7 minutes.
  • Warm tortillas on a dry skillet over medium heat for about 30 seconds on each side before serving.

FAQs

Can I use other meats instead of chicken for Charred Chile–Marinated Grilled Chicken Tacos?

Yes! You can substitute chicken with beef, turkey, or even grilled vegetables for a delightful variation. Just adjust cooking times accordingly.

How can I make Charred Chile–Marinated Grilled Chicken Tacos spicier?

To increase the heat level, consider adding more chiles de árbol or including fresh jalapeños in your marinade.

How long should I marinate the chicken for Charred Chile–Marinated Grilled Chicken Tacos?

For best flavor, marinate the chicken for at least 1 hour and up to 5 hours. Avoid marinating overnight to prevent bitterness from the charred ingredients.

What sides pair well with Charred Chile–Marinated Grilled Chicken Tacos?

These tacos pair wonderfully with Mexican rice, beans, or a fresh corn salad.

Final Thoughts

I hope you enjoy making these Charred Chile–Marinated Grilled Chicken Tacos as much as I do! This recipe is not just a meal; it’s an experience filled with vibrant flavors that will bring joy to your table. Don’t hesitate to share your creations and invite friends over for taco night — it’s bound to be a hit!

Print

Charred Chile–Marinated Grilled Chicken Tacos

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Indulge in a burst of flavor with Charred Chile–Marinated Grilled Chicken Tacos, the perfect dish for weeknight dinners or casual gatherings. These tacos feature smoky, marinated chicken grilled to perfection and served with homemade corn tortillas and zesty tomatillo salsa. Not only are they delicious, but they also offer versatility, allowing you to customize toppings and fillings to suit your preferences. Whether you’re prepping for a family meal or hosting friends, these tacos deliver a satisfying blend of textures and tastes that bring the essence of Mexican cuisine right to your table.

  • Author: Sarah Mitchell
  • Prep Time: 15 minutes
  • Cook Time: 25 minutes
  • Total Time: 40 minutes
  • Yield: Serves 4 (8 tacos total) 1x
  • Category: Main
  • Method: Grilling
  • Cuisine: Mexican

Ingredients


Scale

  • 6 medium garlic cloves
  • 5 dried guajillo chiles
  • 3 dried chiles de árbol
  • 6 bone-in, skin-on chicken thighs (about 1 pound)
  • 12 homemade corn tortillas
  • Tomatillo salsa cruda

Instructions

  1. Prepare the marinade by charring garlic and dried chiles in a skillet until fragrant. Blend with charred onion, allspice, cinnamon stick, salt, black pepper, and water until smooth.
  2. Marinate the chicken thighs in the mixture for at least one hour in the refrigerator.
  3. Grill the marinated chicken over direct heat until charred; then move to indirect heat until cooked through.
  4. Assemble tacos by chopping grilled chicken and layering it on warm tortillas with tomatillo salsa.

Nutrition

  • Serving Size: 2 tacos (approx. 200g)
  • Calories: 380
  • Sugar: 2g
  • Sodium: 800mg
  • Fat: 20g
  • Saturated Fat: 6g
  • Unsaturated Fat: 14g
  • Trans Fat: 0g
  • Carbohydrates: 30g
  • Fiber: 4g
  • Protein: 28g
  • Cholesterol: 90mg

Did you make this recipe?

Share a photo and tag us — we can’t wait to see what you’ve made!

window.trCommon={“minRating”:6,”ajaxurl”:”https:\/\/www.simpledailyeats.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”830ed8ceb8″,”postId”:2307};
window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.smoothScroll = {
init() {
document.addEventListener( ‘click’, ( e ) => {
let anchor = e.target;
if ( anchor.tagName !== ‘A’ ) {
anchor = anchor.closest( ‘a.tasty-recipes-scrollto’ );
}

if ( ! anchor || ! anchor.classList.contains( ‘tasty-recipes-scrollto’ ) ) {
return;
}

const elementHref = anchor.getAttribute( ‘href’ );
if ( ! elementHref ) {
return;
}

e.preventDefault();
this.goToSelector( elementHref );
});
},
goToSelector( selector ) {
const element = document.querySelector( selector );
if ( ! element ) {
return;
}
element.scrollIntoView( { behavior: ‘smooth’ } );
}
};

document.addEventListener(
‘DOMContentLoaded’,
() => window.TastyRecipes.smoothScroll.init()
);

(function(){

var bothEquals = function( d1, d2, D ) {
var ret = 0;
if (d1<=D) {
ret++;
}
if (d2<=D) {
ret++;
}
return ret === 2;
};

var frac =function frac(x,D,mixed){var n1=Math.floor(x),d1=1;var n2=n1+1,d2=1;if(x!==n1){while(bothEquals(d1,d2,D)){var m=(n1+n2)/(d1+d2);if(x===m){if(d1+d2d2){d2=D+1;}else {d1=D+1;}break}else if(xD){d1=d2;n1=n2}if(!mixed){return[0,n1,d1];}var q=Math.floor(n1/d1);return[q,n1-q*d1,d1]};frac.cont=function cont(x,D,mixed){var sgn=x<0?-1:1;var B=x*sgn;var P_2=0,P_1=1,P=0;var Q_2=1,Q_1=0,Q=0;var A=Math.floor(B);while(Q_1<D){A=Math.floor(B);P=A*P_1+P_2;Q=A*Q_1+Q_2;if(B-AD){if(Q_1>D){Q=Q_2;P=P_2}else{Q=Q_1;P=P_1}}if(!mixed){return[0,sgn*P,Q];}var q=Math.floor(sgn*P/Q);return[q,sgn*P-q*Q,Q]};

window.tastyRecipesVulgarFractions = JSON.parse(decodeURIComponent(“%7B%22%C2%BC%22%3A%221%2F4%22%2C%22%C2%BD%22%3A%221%2F2%22%2C%22%C2%BE%22%3A%223%2F4%22%2C%22%E2%85%93%22%3A%221%2F3%22%2C%22%E2%85%94%22%3A%222%2F3%22%2C%22%E2%85%95%22%3A%221%2F5%22%2C%22%E2%85%96%22%3A%222%2F5%22%2C%22%E2%85%97%22%3A%223%2F5%22%2C%22%E2%85%98%22%3A%224%2F5%22%2C%22%E2%85%99%22%3A%221%2F6%22%2C%22%E2%85%9A%22%3A%225%2F6%22%2C%22%E2%85%9B%22%3A%221%2F8%22%2C%22%E2%85%9C%22%3A%223%2F8%22%2C%22%E2%85%9D%22%3A%225%2F8%22%2C%22%E2%85%9E%22%3A%227%2F8%22%7D”));

window.tastyRecipesFormatAmount = function(amount, el) {
if ( parseFloat( amount ) === parseInt( amount ) ) {
return amount;
}
var roundType = ‘frac’;
if (typeof el.dataset.amountShouldRound !== ‘undefined’) {
if (‘false’ !== el.dataset.amountShouldRound) {
if ( ‘number’ === el.dataset.amountShouldRound ) {
roundType = ‘number’;
} else if (‘frac’ === el.dataset.amountShouldRound) {
roundType = ‘frac’;
} else if (‘vulgar’ === el.dataset.amountShouldRound) {
roundType = ‘vulgar’;
} else {
roundType = ‘integer’;
}
}
}
if (‘number’ === roundType) {
amount = Number.parseFloat(amount).toPrecision(2);
} else if (‘integer’ === roundType) {
amount = Math.round(amount);
} else if (‘frac’ === roundType || ‘vulgar’ === roundType) {
var denom = 8;
if (typeof el.dataset.unit !== ‘undefined’) {
var unit = el.dataset.unit;
if ([‘cups’,’cup’,’c’].includes(unit)) {
denom = 4;
if (0.125 === amount) {
denom = 8;
}
if (“0.1667″ === Number.parseFloat( amount ).toPrecision(4)) {
denom = 6;
}
}
if ([‘tablespoons’,’tablespoon’,’tbsp’].includes(unit)) {
denom = 2;
}
if ([‘teaspoons’,’teaspoon’,’tsp’].includes(unit)) {
denom = 8;
}
}
var amountArray = frac.cont( amount, denom, true );
var newAmount = ”;
if ( amountArray[1] !== 0 ) {
newAmount = amountArray[1] + ‘/’ + amountArray[2];
if (‘vulgar’ === roundType) {
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (newAmount === window.tastyRecipesVulgarFractions[vulgar]) {
newAmount = vulgar;
}
});
}
}
if ( newAmount ) {
newAmount = ‘ ‘ + newAmount;
}
if ( amountArray[0] ) {
newAmount = amountArray[0] + newAmount;
}
amount = newAmount;
}
return amount;
};

window.tastyRecipesUpdatePrintLink = () => {

const printButton = document.querySelector( ‘.tasty-recipes-print-button’ );

if ( ! printButton ) {
return;
}

const printURL = new URL( printButton.href );
const searchParams = new URLSearchParams( printURL.search );

const unitButton = document.querySelector( ‘.tasty-recipes-convert-button-active’ );
const scaleButton = document.querySelector( ‘.tasty-recipes-scale-button-active’ );

let unit = ”;
let scale = ”;

if ( unitButton ) {
unit = unitButton.dataset.unitType;
searchParams.delete(‘unit’);
searchParams.set( ‘unit’, unit );
}

if ( scaleButton ) {
scale = scaleButton.dataset.amount;
searchParams.set( ‘scale’, scale );
}

const paramString = searchParams.toString();
const newURL = ” === paramString ? printURL.href : printURL.origin + printURL.pathname + ‘?’ + paramString;
const printLinks = document.querySelectorAll( ‘.tasty-recipes-print-link’ );

printLinks.forEach( ( el ) => {
el.href = newURL;
});

const printButtons = document.querySelectorAll( ‘.tasty-recipes-print-button’ );
printButtons.forEach( ( el ) => {
el.href = newURL;
});
};

document.addEventListener( ‘DOMContentLoaded’, () => {

if ( ! window.location.href.includes( ‘/print/’ ) ) {
return;
}

const searchParams = new URLSearchParams( window.location.search );

const unit = searchParams.get( ‘unit’ );
const scale = searchParams.get( ‘scale’ );

if ( unit && ( ‘metric’ === unit || ‘usc’ === unit ) ) {
document.querySelector( ‘.tasty-recipes-convert-button[data-unit-type=”‘ + unit + ‘”]’ ).click();
}

if ( scale && Number(scale) > 0 ) {
document.querySelector( ‘.tasty-recipes-scale-button[data-amount=”‘ + Number(scale) + ‘”]’ ).click();
}
});
}());

(function(){
var buttonClass = ‘tasty-recipes-scale-button’,
buttonActiveClass = ‘tasty-recipes-scale-button-active’,
buttons = document.querySelectorAll(‘.tasty-recipes-scale-button’);
if ( ! buttons ) {
return;
}

buttons.forEach(function(button){
button.addEventListener(‘click’, function(event){
event.preventDefault();
var recipe = event.target.closest(‘.tasty-recipes’);
if ( ! recipe ) {
return;
}
var otherButtons = recipe.querySelectorAll(‘.’ + buttonClass);
otherButtons.forEach(function(bt){
bt.classList.remove(buttonActiveClass);
});
button.classList.add(buttonActiveClass);

var scalables = recipe.querySelectorAll(‘span[data-amount]’);
var buttonAmount = parseFloat( button.dataset.amount );
scalables.forEach(function(scalable){
if (typeof scalable.dataset.amountOriginalType === ‘undefined’
&& typeof scalable.dataset.nfOriginal === ‘undefined’) {
if (-1 !== scalable.innerText.indexOf(‘/’)) {
scalable.dataset.amountOriginalType = ‘frac’;
}
if (-1 !== scalable.innerText.indexOf(‘.’)) {
scalable.dataset.amountOriginalType = ‘number’;
}
Object.keys(window.tastyRecipesVulgarFractions).forEach(function(vulgar) {
if (-1 !== scalable.innerText.indexOf(vulgar)) {
scalable.dataset.amountOriginalType = ‘vulgar’;
}
});
if (typeof scalable.dataset.amountOriginalType !== ‘undefined’) {
scalable.dataset.amountShouldRound = scalable.dataset.amountOriginalType;
}
}
var amount = parseFloat( scalable.dataset.amount ) * buttonAmount;
amount = window.tastyRecipesFormatAmount(amount, scalable);
if ( typeof scalable.dataset.unit !== ‘undefined’ ) {
if ( ! scalable.classList.contains(‘nutrifox-quantity’) ) {
if ( ! scalable.classList.contains(‘nutrifox-second-quantity’) ) {
amount += ‘ ‘ + scalable.dataset.unit;
}
}
}
scalable.innerText = amount;
});

var nonNumerics = recipe.querySelectorAll(‘[data-has-non-numeric-amount]’);
nonNumerics.forEach(function(nonNumeric){
var indicator = nonNumeric.querySelector(‘span[data-non-numeric-label]’);
if ( indicator ) {
nonNumeric.removeChild(indicator);
}
if ( 1 !== buttonAmount ) {
indicator = document.createElement(‘span’);
indicator.setAttribute(‘data-non-numeric-label’, true);
var text = document.createTextNode(‘ (x’ + buttonAmount + ‘)’);
indicator.appendChild(text);
nonNumeric.appendChild(indicator);
}
});

window.tastyRecipesUpdatePrintLink();
});
});
}());

window.TastyRecipes = window.TastyRecipes || {};
window.TastyRecipes.cookMode = {
wakeLockApi: false,
wakeLock: false,
cookModeSelector: ‘.tasty-recipes-cook-mode’,
init() {
if (“wakeLock” in navigator && “request” in navigator.wakeLock) {
this.wakeLockApi = navigator.wakeLock;
}

const cookModes = document.querySelectorAll(this.cookModeSelector);

if (cookModes.length > 0) {
for (const cookMode of cookModes) {
if (this.wakeLockApi) {
cookMode.querySelector(‘input[type=”checkbox”]’).addEventListener(“change”, event => {
this.checkboxChange(event.target);
}, false);
} else {
cookMode.style.display = “none”;
}
}
}
},
checkboxChange(checkbox) {
if (checkbox.checked) {
this.lock();
} else {
this.unlock();
}
},
setCheckboxesState(state) {
const checkboxes = document.querySelectorAll(this.cookModeSelector + ‘ input[type=”checkbox”]’);
for (const checkbox of checkboxes) {
checkbox.checked = state;
}
},
async lock() {
try {
this.wakeLock = await this.wakeLockApi.request(“screen”);
this.wakeLock.addEventListener(“release”, () => {
this.wakeLock = false;
this.setCheckboxesState(false);
});
this.setCheckboxesState(true);
} catch (error) {
this.setCheckboxesState(false);
}
},
unlock() {
if (this.wakeLock) {
this.wakeLock.release();
this.wakeLock = false;
}
this.setCheckboxesState(false);
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
document.addEventListener(“DOMContentLoaded”, callback);
}
})(() => {
window.TastyRecipes.cookMode.init();
});

window.TastyRecipes = window.TastyRecipes || {};

window.TastyRecipes.staticTooltip = {
element: null,
tooltipElement: null,
deleting: false,
init( element ) {
if ( this.deleting ) {
return;
}
this.element = element;
this.buildElements();
},
destroy() {
if ( ! this.tooltipElement || this.deleting ) {
return;
}

this.deleting = true;
this.tooltipElement.classList.remove( ‘opened’ );

setTimeout( () => {
this.tooltipElement.remove();
this.deleting = false;
}, 500 );
},
buildElements() {
const tooltipElement = document.createElement( ‘div’ );
tooltipElement.classList.add( ‘tasty-recipes-static-tooltip’);
tooltipElement.setAttribute( ‘id’, ‘tasty-recipes-tooltip’ );

const currentTooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
if ( currentTooltipElement ) {
document.body.replaceChild( tooltipElement, currentTooltipElement );
} else {
document.body.appendChild( tooltipElement );
}

this.tooltipElement = document.getElementById( ‘tasty-recipes-tooltip’ );
},
show() {
if ( ! this.tooltipElement ) {
return;
}

const tooltipTop = this.element.getBoundingClientRect().top
+ window.scrollY
– 10 // 10px offset.
– this.tooltipElement.getBoundingClientRect().height;
const tooltipLeft = this.element.getBoundingClientRect().left
– ( this.tooltipElement.getBoundingClientRect().width / 2 )
+ ( this.element.getBoundingClientRect().width / 2 ) – 1;
const posLeft = Math.max( 10, tooltipLeft );
this.maybeRemoveTail( posLeft !== tooltipLeft );

this.tooltipElement.setAttribute( ‘style’, ‘top:’ + tooltipTop + ‘px;left:’ + posLeft + ‘px;’ );
this.tooltipElement.classList.add( ‘opened’ );

},
maybeRemoveTail( removeTail ) {
if ( removeTail ) {
this.tooltipElement.classList.add( ‘tr-hide-tail’ );
} else {
this.tooltipElement.classList.remove( ‘tr-hide-tail’ );
}
},
changeMessage( message ) {
if ( ! this.tooltipElement ) {
return;
}
this.tooltipElement.innerHTML = message;
}
};

window.TastyRecipes.ajax = {
sendPostRequest( url, data, success, failure ) {
const xhr = new XMLHttpRequest();
xhr.open( ‘POST’, url, true );
xhr.send( this.preparePostData( data ) );

xhr.onreadystatechange = () => {
if ( 4 !== xhr.readyState ) {
return;
}
if ( xhr.status === 200 ) {
success( JSON.parse( xhr.responseText ) );
return;
}

failure( xhr );
};

xhr.onerror = () => {
failure( xhr );
};
},
preparePostData( data ) {
const formData = new FormData();

for ( const key in data ) {
formData.append( key, data[key] );
}
return formData;
},
};

window.TastyRecipes.ratings = {
defaultRating: 0,
currentRatingPercentage: 100,
savingRating: false,
init( minRating ) {
this.minRating = minRating;

this.formWatchRating();
this.closeTooltipWhenClickOutside();
this.addBodyClassBasedOnSelectedRating();
this.backwardCompFormRatingPosition();
},
formWatchRating() {
const ratings = document.querySelectorAll(‘.tasty-recipes-no-ratings-buttons [data-rating]’);
if ( ratings.length {
event.preventDefault();
this.defaultRating = event.target.closest( ‘.checked’ ).dataset.rating;
this.setCheckedStar( event.target );
this.maybeSendRating( this.defaultRating, event.target );
this.setRatingInForm( this.defaultRating );
} );
}
},
closeTooltipWhenClickOutside() {
window.addEventListener( ‘click’, e => {
// Bailout (don’t remove the tooltip) when the clicked element is a rating star, or it’s the tooltip itself.
if ( e.target.closest( ‘.tasty-recipes-rating’ ) || e.target.classList.contains( ‘tasty-recipes-static-tooltip’ ) ) {
return;
}

window.TastyRecipes.staticTooltip.destroy();
} );
},
setRatingInForm( rating ) {
const ratingInput = document.querySelector( ‘#respond .tasty-recipes-rating[value=”‘ + rating + ‘”]’ );
if ( ! ratingInput ) {
return;
}
ratingInput.click();
},
addBodyClassBasedOnSelectedRating() {
const ratingInputs = document.querySelectorAll( ‘input.tasty-recipes-rating’ );
if ( ! ratingInputs ) {
return;
}
for ( const ratingInput of ratingInputs ) {
ratingInput.addEventListener( ‘click’, currentEvent => {
const selectedRating = currentEvent.target.getAttribute( ‘value’ );
this.handleBodyClassByRating( selectedRating );
this.toggleCommentTextareaRequired( selectedRating );
} );
}
},
handleBodyClassByRating( rating ) {
if ( rating < this.minRating ) {
document.body.classList.remove( 'tasty-recipes-selected-minimum-rating' );
return;
}
document.body.classList.add( 'tasty-recipes-selected-minimum-rating' );
},
toggleCommentTextareaRequired( rating ) {
const commentTextarea = document.getElementById( 'comment' );
if ( ! commentTextarea ) {
return;
}

if ( rating {
window.TastyRecipes.staticTooltip.changeMessage( response.data.message );
window.TastyRecipes.staticTooltip.show();
this.updateAverageText( response.data, recipeCardElement );
this.maybeFillCommentForm( response.data );

// Hide the tooltip after 5 seconds.
setTimeout( () => {
this.maybeResetTooltip( recipeCardElement, response.data, rating );
}, 5000 );
},
() => {
this.resetTooltip( recipeCardElement );
}
);
},
updateAverageText( data, recipeCardElement ) {
if ( ! data.average ) {
return;
}
this.setRatingPercent( data );

if ( ! data.count ) {
return;
}

const quickLink = document.querySelector( ‘.tasty-recipes-rating-link’ );
if ( quickLink ) {
this.setTextInContainer( quickLink, data );
this.setPartialStar( quickLink );
}

const cardStars = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
cardStars.dataset.trDefaultRating = data.average;
this.setTextInContainer( recipeCardElement.querySelector( ‘.tasty-recipes-rating’ ), data );
},
setTextInContainer( container, data ) {
if ( ! container ) {
return;
}

if ( data.label ) {
const ratingLabelElement = container.querySelector( ‘.rating-label’ );
if ( ratingLabelElement ) {
ratingLabelElement.innerHTML = data.label;
}
return;
}

const averageElement = container.querySelector( ‘.average’ );
if ( averageElement ) {
averageElement.textContent = data.average;
}

const countElement = container.querySelector( ‘.count’ );
if ( countElement ) {
countElement.textContent = data.count;
}
},
setPartialStar( container ) {
const highestStar = container.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( highestStar ) {
highestStar.dataset.trClip = this.currentRatingPercentage;
}
},
setRatingPercent( data ) {
this.defaultRating = data.average.toFixed( 1 );
const parts = data.average.toFixed( 2 ).toString().split( ‘.’ );
this.currentRatingPercentage = parts[1] ? parts[1] : 100;
if ( this.currentRatingPercentage === ’00’ ) {
this.currentRatingPercentage = 100;
}
},
setCheckedStar( target ) {
const cardRatingContainer = target.closest( ‘.tasty-recipes-ratings-buttons’ );
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( selectedRatingElement ) {
delete selectedRatingElement.dataset.trChecked;
}

const thisStar = target.closest( ‘.tasty-recipes-rating’ );
thisStar.dataset.trChecked = 1;
thisStar.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = 100;
},
maybeFillCommentForm( data ) {
if ( ! data.comment || ! data.comment.content ) {
return;
}

const commentForm = document.querySelector( ‘#commentform’ );
if ( ! commentForm ) {
return;
}

const commentBox = commentForm.querySelector( ‘[name=comment]’ );
if ( ! commentBox || commentBox.value ) {
return;
}

// Add comment details for editing.
commentBox.innerHTML = data.comment.content;
if ( data.comment.name ) {
commentForm.querySelector( ‘[name=author]’ ).value = data.comment.name;
commentForm.querySelector( ‘[name=email]’ ).value = data.comment.email;
}
},
maybeResetTooltip( recipeCardElement, data, rating ) {
if ( this.savingRating === rating ) {
this.resetTooltip( recipeCardElement, data );
}
},
resetTooltip( recipeCardElement, data ) {
window.TastyRecipes.staticTooltip.destroy();
this.savingRating = false;

// Reset the default rating.
const cardRatingContainer = recipeCardElement.querySelector( ‘.tasty-recipes-ratings-buttons’ );
if ( cardRatingContainer ) {
this.defaultRating = ( data && data.average ) ? data.average.toFixed(1) : cardRatingContainer.dataset.trDefaultRating;
cardRatingContainer.dataset.trDefaultRating = this.defaultRating;

this.resetSelectedStar( cardRatingContainer, data );
}
},
resetSelectedStar( cardRatingContainer ) {
const selectedRatingElement = cardRatingContainer.querySelector( ‘[data-rating=”‘ + Math.ceil( this.defaultRating ) + ‘”]’ );
if ( selectedRatingElement ) {
selectedRatingElement.querySelector( ‘[data-tr-clip]’ ).dataset.trClip = this.currentRatingPercentage;
selectedRatingElement.parentNode.dataset.trChecked = 1;
}

const previousSelectedElement= cardRatingContainer.querySelector( ‘[data-tr-checked]’ );
if ( previousSelectedElement ) {
const currentSelectedRating = previousSelectedElement.querySelector(‘[data-rating]’);
if ( currentSelectedRating !== selectedRatingElement ) {
delete previousSelectedElement.dataset.trChecked;
}
}
},
backwardCompFormRatingPosition() {
const ratingsButtons = document.querySelector( ‘#respond .tasty-recipes-ratings-buttons, #tasty-recipes-comment-rating .tasty-recipes-ratings-buttons’ );
if ( ! ratingsButtons ) {
return;
}
const ratingsButtonsStyles = window.getComputedStyle(ratingsButtons);
if ( ! ratingsButtonsStyles.display.includes( ‘flex’ ) ) {
ratingsButtons.style.direction = ‘rtl’;
}

if ( typeof tastyRecipesRating !== ‘undefined’ ) {
// Select the rating that was previously selected in admin.
ratingsButtons.querySelector( ‘.tasty-recipes-rating[value=”‘ + tastyRecipesRating + ‘”]’ ).checked = true;
}

const ratingSpans = ratingsButtons.querySelectorAll( ‘.tasty-recipes-rating’ );
for (const ratingSpan of ratingSpans) {
ratingSpan.addEventListener( ‘click’, event => {
if ( ratingSpan === event.target ) {
return;
}
ratingSpan.previousElementSibling.click();
} );
}
}
};

(function(callback) {
if (document.readyState !== “loading”) {
callback();
} else {
window.addEventListener( ‘load’, callback );
}
})(() => {
window.TastyRecipes.ratings.init( window.trCommon ? window.trCommon.minRating : 4 );
});

« Previous Post
Mediterranean Bowl with Grilled Chicken Tawook Skewers
Next Post »
Crispy Smashed Potato Salad

If you enjoyed this…

Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners

Buffalo Chicken Bowls: A Delicious and Easy Recipe for Game Day or Weeknight Dinners

Air Fryer Chicken Fajita Bowls

Air Fryer Chicken Fajita Bowls

Honey Pineapple Salmon

Honey Pineapple Salmon

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
Chili-Lime Quinoa Black Bean Salad with Corn

Chili-Lime Quinoa Black Bean Salad with Corn

Garlic Butter Beef Bites with Potatoes

Garlic Butter Beef Bites with Potatoes

Mediterranean Bean Salad

Mediterranean Bean Salad

  • Home
  • Recipe Index
  • Budget
  • Cheat Meal
  • Healthy
  • Keto
  • Quick
  • Vegan
  • About
  • Contact

© 2026 Simple Daily Eats · All Rights Reserved · Created with heart by Sarah Mitchell · About · Privacy Policy · Terms & Conditions · Disclaimer · Affiliate Disclosure · Contact