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

Quick Daily Dish

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

Quick Daily Dish

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

Mexican Street Corn Salad

Jump to Recipe·Print Recipe

If you’re looking for a vibrant and flavorful dish that brings the essence of summer to your table, this Mexican Street Corn Salad is just the thing! It transforms classic street food into a delightful side dish that’s perfect for busy weeknights or lively family gatherings. The combination of sweet corn, fresh veggies, and zesty dressing makes it a crowd-pleaser that will have everyone coming back for seconds.

Mexican Street Corn Salad image 2

What I love most about this salad is how simple it is to whip up while packing in tons of flavor. Whether you’re serving it at a barbecue, a picnic, or as part of a cozy dinner at home, it’s sure to be a hit. Plus, it’s gluten-free and can easily be customized to suit your taste!

Mexican Street Corn Salad image 3
Mexican Street Corn Salad image 4

Why You’ll Love This Recipe

  • Quick to prepare: With just 20 minutes from start to finish, you can have this salad ready in no time!
  • Fresh and flavorful: The bright, zesty flavors will transport you straight to the streets of Mexico.
  • Perfect for sharing: This recipe serves eight, making it ideal for family meals or potlucks.
  • Make ahead option: Prep it in advance and let the flavors meld together in the fridge — it’s even better the next day!
  • Versatile ingredient swap: Easily customize with your favorite veggies or toppings.

Ingredients You’ll Need

This Mexican Street Corn Salad uses simple, wholesome ingredients that come together beautifully for a refreshing dish. Here’s what you’ll need:

For the Salad

  • 4 cups corn (approximately 24 oz frozen)
  • 1 tablespoon olive oil
  • 1 red bell pepper (diced)
  • 1 bunch fresh cilantro (minced, with a few leaves left for garnish)
  • 1 jalapeno (diced)
  • 1/2 large red onion (diced)
  • 2/3 cup cotija cheese (shredded/crumbled)

For the Dressing

  • 3 tablespoons sour cream
  • 2 tablespoons mayonnaise
  • 4 tablespoons fresh lime juice (approximately 2 limes)
  • 1/2 teaspoon cumin
  • 1/2 teaspoon paprika
  • 1/4 teaspoon kosher salt
  • 1/4 teaspoon chili powder

Variations

This recipe is wonderfully flexible! Here are some fun ways to switch things up:

  • Add more crunch: Toss in some diced cucumber or chopped radishes for extra texture.
  • Spice it up: If you enjoy heat, add more jalapeno or even some diced serrano peppers.
  • Go vegan: Substitute cotija cheese with vegan cheese alternatives and use plant-based mayo.
  • Herb twist: Experiment with different herbs like parsley or mint instead of cilantro for a unique flavor profile.

How to Make Mexican Street Corn Salad

Step 1: Sauté the Corn

Begin by heating olive oil in a sauté pan over medium-high heat. Add the corn and cook until it’s slightly charred, which takes about 7-10 minutes. This step enhances the sweetness of the corn and gives it a wonderful smoky flavor that elevates the entire salad.

Step 2: Combine Fresh Ingredients

In a large bowl, combine the sautéed corn with diced red bell pepper, minced cilantro, diced jalapeno, and red onion. Mixing these fresh ingredients together not only creates beautiful colors but also builds layers of flavor that make each bite exciting.

Step 3: Whisk Together the Dressing

In a small bowl, whisk together sour cream, mayonnaise, lime juice, cumin, paprika, salt, and chili powder until smooth. This creamy dressing adds richness and tang that perfectly complements the crunchy vegetables.

Step 4: Mix It All Together

Pour the dressing over the corn mixture and toss everything well. Don’t forget to add half of the cotija cheese at this stage for an extra zing! The dressing coats each piece beautifully while keeping things light and refreshing.

Step 5: Serve with Flair

Finally, sprinkle on the remaining cotija cheese and some reserved cilantro leaves before serving. This little touch not only enhances presentation but also adds freshness right before your guests dig in!

Enjoy every bite of this delicious Mexican Street Corn Salad!

Pro Tips for Making Mexican Street Corn Salad

To elevate your Mexican Street Corn Salad, keep these helpful tips in mind!

  • Use fresh corn: If possible, opt for fresh corn off the cob during peak season for a sweeter and more vibrant flavor.
  • Adjust spice levels: Feel free to modify the amount of jalapeno or chili powder based on your heat preference to make it as spicy or mild as you like.
  • Chill before serving: Allowing the salad to chill in the refrigerator for at least 30 minutes lets the flavors meld beautifully, enhancing the overall taste.
  • Experiment with cheeses: While cotija is traditional, try using feta or a dairy-free alternative if you’re looking for a different flavor profile or dietary option.
  • Make it ahead: This salad keeps well in the fridge for up to 2 days, making it a great option for meal prep or gatherings.

How to Serve Mexican Street Corn Salad

Serving your Mexican Street Corn Salad can be as simple or as creative as you desire. Here are some ideas to enhance your presentation!

Garnishes

  • Extra cilantro: A sprinkle of fresh cilantro adds a burst of color and freshness that complements the salad beautifully.
  • Lime wedges: Provide lime wedges on the side so guests can squeeze more juice over their portions, enhancing the zesty flavor.
  • Chili powder sprinkle: A light dusting of chili powder on top gives an inviting visual and hints at the flavor within.

Side Dishes

  • Grilled Chicken Skewers: Juicy chicken skewers seasoned with spices pair perfectly with this salad, creating a satisfying balance.
  • Black Bean Tacos: These hearty tacos filled with seasoned black beans offer a tasty contrast and are easy to share at gatherings.
  • Quinoa Salad: A refreshing quinoa salad with lime dressing and veggies brings an additional layer of nutrition and flavor variety to your meal.
  • Guacamole with Tortilla Chips: Creamy guacamole served with crunchy tortilla chips is always a crowd-pleaser and complements the flavors of the corn salad wonderfully.

Make Ahead and Storage

This Mexican Street Corn Salad is a fantastic option for meal prep, making it easy to enjoy throughout the week. You can prepare it in advance and store it properly to maintain its freshness.

Storing Leftovers

  • Store any leftover salad in an airtight container in the refrigerator.
  • It will stay fresh for up to 3 days; however, the flavors may intensify over time.
  • Avoid adding the cheese and dressing until you’re ready to serve for best results.

Freezing

  • Freezing is not recommended for this salad due to the texture changes of corn and vegetables upon thawing.
  • If you do freeze, store in an airtight container or freezer bag, but consume within 1 month for optimal quality.

Reheating

  • If desired, you can lightly reheat the salad in a skillet on low heat, but it’s best enjoyed cold or at room temperature.
  • For quick reheating, microwave in short intervals while stirring until warmed through.

FAQs

Here are some common questions about Mexican Street Corn Salad that might help you further.

Can I make Mexican Street Corn Salad ahead of time?

Yes! This salad is perfect for meal prep. You can make it a day in advance; just store it in the refrigerator without dressing and cheese until you’re ready to serve.

What are some variations of Mexican Street Corn Salad?

You can customize your Mexican Street Corn Salad by adding ingredients like black beans, avocado, or even grilled chicken for extra protein. The possibilities are endless!

How long does Mexican Street Corn Salad last?

When stored properly in an airtight container, Mexican Street Corn Salad will last up to 3 days in the fridge. For best flavor and texture, try to consume it within this timeframe.

Is Mexican Street Corn Salad gluten-free?

Yes! All the ingredients used in this recipe are naturally gluten-free, making it a suitable dish for those with gluten sensitivities.

Final Thoughts

I hope you enjoy creating this delightful Mexican Street Corn Salad as much as I do! Its vibrant flavors and textures make it an irresistible side dish that’s sure to impress your family and friends. Don’t hesitate to experiment with your favorite add-ins. Happy cooking!

Print

clock clock iconcutlery cutlery iconflag flag iconfolder folder iconinstagram instagram iconpinterest pinterest iconfacebook facebook iconprint print iconsquares squares iconheart heart iconheart solid heart solid icon

Mexican Street Corn Salad

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Print Recipe

If you’re craving a refreshing and vibrant dish that captures the essence of summer, look no further than Mexican Street Corn Salad. This delightful side transforms traditional street food into a colorful salad that’s perfect for busy weeknights or festive gatherings. With sweet corn, fresh vegetables, and a tangy dressing, it’s sure to be a crowd-pleaser. Quick to prepare in just 20 minutes, this gluten-free salad can easily be customized to suit your taste buds. Whether served at a barbecue or as part of a cozy dinner, this dish is bound to impress.

  • Total Time:

    20 minutes
  • Yield:

    Approximately 8 servings 1x

Ingredients


Scale
  • 4 cups corn (approximately 24 oz frozen)
  • 1 tablespoon olive oil
  • 1 red bell pepper (diced)
  • 1 bunch fresh cilantro (minced, with some leaves for garnish)
  • 1 jalapeno (diced)
  • 1/2 large red onion (diced)
  • 2/3 cup cotija cheese (shredded/crumbled)
  • 3 tablespoons sour cream
  • 2 tablespoons mayonnaise
  • 4 tablespoons fresh lime juice
  • 1/2 teaspoon cumin
  • 1/2 teaspoon paprika
  • 1/4 teaspoon kosher salt
  • 1/4 teaspoon chili powder


Instructions

  1. Sauté the corn in olive oil over medium-high heat for about 7-10 minutes until slightly charred.
  2. In a large bowl, combine sautéed corn with diced red bell pepper, minced cilantro, jalapeno, and red onion.
  3. In a separate bowl, whisk together sour cream, mayonnaise, lime juice, cumin, paprika, salt, and chili powder until smooth.
  4. Pour the dressing over the corn mixture and toss well; add half of the cotija cheese.
  5. Serve garnished with remaining cotija cheese and cilantro.
  • Author: Nova
  • Prep Time: 10 minutes
  • Cook Time: 10 minutes
  • Category: Side Dish
  • Method: Sautéing
  • Cuisine: Mexican

Nutrition

  • Serving Size: About 3/4 cup (150g)
  • Calories: 175
  • Sugar: 5g
  • Sodium: 150mg
  • Fat: 9g
  • Saturated Fat: 3g
  • Unsaturated Fat: 5g
  • Trans Fat: 0g
  • Carbohydrates: 20g
  • Fiber: 3g
  • Protein: 6g
  • Cholesterol: 15mg

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.quickdailydish.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”5ca088bcb0″,”postId”:4500};
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 );
});

REMEMBER

WANT TO SAVE THIS RECIPE? CLICK BELOW AND PIN IT

PIN
« Previous Post
Grilled Peach and Burrata Crostini
Next Post »
Grilled Shrimp Bowl with Avocado, Corn Salsa & Creamy Garlic Sauce: An Incredible 7-Ingredient Recipe

If you enjoyed this…

Fall Fruit Salad

Fall Fruit Salad

Balsamic Potato Salad

Balsamic Potato Salad

Oreo Cookies and Cream Cinnamon Rolls

Oreo Cookies and Cream Cinnamon Rolls

Primary Sidebar

Browse by Diet

HealthyBudgetKetoQuickVeganCheat Meal
Sun-Dried Tomato Pesto Grilled Cheese: A Flavor Delight!

Sun-Dried Tomato Pesto Grilled Cheese: A Flavor Delight!

Cranberry Cream Cheese Crescent Bites

Cranberry Cream Cheese Crescent Bites

Cheesecake Brownies

Cheesecake Brownies

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

© 2026 Quick Daily Dish · All Rights Reserved · Created by Chef Nova Blake · About · Privacy Policy · Terms & Conditions · Disclaimer · Contact