• 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

Spicy Creamy Cajun Corn Cob

Jump to Recipe·Print Recipe

If you’re looking for a dish that elevates your summer BBQs and gatherings to the next level, let me introduce you to my Spicy Creamy Cajun Corn Cob. This delightful recipe combines the sweetness of grilled corn with a zesty Cajun cream that has everyone coming back for seconds! It’s easy to whip up, making it perfect for busy weeknights or family picnics.

Spicy Creamy Cajun Corn Cob image 2

What makes this corn special is not just its flavor but its versatility. Whether you’re hosting a backyard party or just want to treat yourself to something delicious, this dish will surely impress your family and friends across the US, UK, and beyond!

Spicy Creamy Cajun Corn Cob image 3
Spicy Creamy Cajun Corn Cob image 4

Why You’ll Love This Recipe

  • Deliciously Flavorful: The combination of Cajun seasoning and creamy toppings creates a mouthwatering experience that’s irresistibly tasty.
  • Quick and Easy Preparation: Ready in just 25 minutes, this dish is perfect for those nights when you need something quick yet satisfying.
  • Customizable for Everyone: With options to make it vegan or adjust spice levels, there’s something for everyone at the table.
  • Perfect for Summer BBQs: Grilled corn on the cob is a classic summer treat, and this version adds an exciting twist!
  • Packed with Fresh Ingredients: Featuring wholesome ingredients like fresh cilantro and lime, this recipe brings vibrant flavors right into your home.

Ingredients You’ll Need

To create this delicious Spicy Creamy Cajun Corn Cob, you’ll need some simple and wholesome ingredients that are likely already in your pantry. Gather these items before we dive into the cooking process!

  • 4 ears corn, husked
  • 2 tablespoons olive oil
  • Salt, to taste
  • Freshly ground black pepper, to taste
  • 4 tablespoons mayonnaise (vegan or regular)
  • 80 millilitres sour cream or Mexican crema
  • 1.5 teaspoons Cajun seasoning
  • 1.5 teaspoons smoked paprika
  • 1 teaspoon onion powder
  • 1 teaspoon garlic powder
  • 1 tablespoon fresh cilantro, finely chopped
  • 60 grams feta or cotija cheese, crumbled
  • 1 tablespoon fresh lime juice
  • 1 teaspoon chipotle powder or chili powder (optional)

Variations

One of the best things about this Spicy Creamy Cajun Corn Cob is its flexibility! Here are some fun variations you can try:

  • Add Some Protein: For a heartier meal, top your corn with grilled shrimp or chicken for that extra boost of flavor.
  • Go Vegan: Swap out the mayonnaise and sour cream for vegan alternatives, and use nutritional yeast instead of cheese for a cheesy flavor.
  • Spice It Up: If you love heat, increase the chipotle powder or add diced jalapeños into the sauce for an extra kick.
  • Herb Swap: Experiment with different herbs like parsley or chives if cilantro isn’t your thing—each brings a unique freshness.

How to Make Spicy Creamy Cajun Corn Cob

Step 1: Preheat the Grill

Start by preheating your grill to medium-high heat. This step is crucial as it ensures that your corn gets those lovely char marks while cooking evenly throughout.

Step 2: Prep the Corn

Brush each ear of corn evenly with olive oil, then season all sides with salt and freshly ground black pepper. This simple seasoning enhances the natural sweetness of the corn and sets the stage for all those wonderful flavors.

Step 3: Grill the Corn

Place your seasoned corn directly on the grill grates. Cook them for about 10 to 15 minutes, turning occasionally until they’re charred and tender. The grilling gives them that smoky flavor that’s so delightful!

Step 4: Prepare the Cajun Cream Sauce

In a mixing bowl, whisk together mayonnaise, sour cream, Cajun seasoning, smoked paprika, onion powder, and garlic powder until smooth. This creamy sauce is what makes our corn truly special—rich in flavor while still keeping things light.

Step 5: Coat the Grilled Corn

Once your grilled corn is ready, remove it from heat and generously brush each ear with your prepared Cajun cream sauce. Make sure every nook and cranny gets coated because we want all that deliciousness to shine through!

Step 6: Add Toppings

Top each ear of corn with crumbled feta or cotija cheese along with finely chopped cilantro. A drizzle of fresh lime juice elevates all those flavors beautifully; feel free to sprinkle some chipotle powder if you want an extra hint of spice!

Step 7: Serve Warm

Serve your Spicy Creamy Cajun Corn Cob immediately while it’s warm. The flavors are at their best when enjoyed fresh off the grill—trust me; it’s worth it!

Pro Tips for Making Spicy Creamy Cajun Corn Cob

Get ready to impress your guests with these helpful tips for achieving the perfect Spicy Creamy Cajun Corn Cob!

  • Choose Fresh Corn: Selecting fresh, in-season corn will enhance the sweetness and flavor of your dish, making it even more enjoyable.

  • Don’t Rush the Grilling: Allowing the corn to char properly on the grill adds a smoky flavor and enhances the texture. Turn occasionally for even cooking!

  • Customize the Heat Level: Adjust the amount of Cajun seasoning or chipotle powder based on your heat preference. This way, you can cater to everyone’s taste buds.

  • Serve Immediately: For the best taste and texture, serve the corn right off the grill while it’s warm. This ensures that every bite is creamy and delicious.

  • Experiment with Cheeses: While feta and cotija are great options, feel free to try other cheeses such as queso fresco or a vegan cheese alternative to suit your dietary needs.

How to Serve Spicy Creamy Cajun Corn Cob

Presenting your Spicy Creamy Cajun Corn Cob beautifully can elevate your dining experience! Here are some ideas:

Garnishes

  • Chopped Green Onions: Adding freshly chopped green onions provides a pop of color and a mild onion flavor that complements the dish well.
  • Extra Lime Wedges: Serving additional lime wedges allows guests to squeeze more juice over their corn according to their taste preferences.
  • Crushed Red Pepper Flakes: For those who love extra heat, a sprinkle of crushed red pepper flakes can add an exciting kick.

Side Dishes

  • Grilled Vegetables: A medley of seasonal vegetables like zucchini, bell peppers, and mushrooms grilled alongside the corn make for a vibrant and healthy side dish.
  • Quinoa Salad: A refreshing quinoa salad with cherry tomatoes, cucumber, and herbs pairs wonderfully with the richness of the corn.
  • Black Bean Salsa: This zesty salsa made with black beans, corn, tomatoes, and lime is perfect for adding a refreshing contrast to your meal.
  • Rice Pilaf: Fluffy rice pilaf seasoned with herbs provides a comforting base that complements the bold flavors of the Cajun corn.

Make Ahead and Storage

This Spicy Creamy Cajun Corn Cob recipe is perfect for meal prep, allowing you to enjoy delicious flavors throughout the week.

Storing Leftovers

  • Allow the corn to cool completely before storing.
  • Place any leftover corn in an airtight container in the refrigerator.
  • Enjoy leftovers within 2-3 days for the best flavor and texture.

Freezing

  • If you want to freeze the corn, cut the kernels off the cob after grilling.
  • Place the kernels in a freezer-safe bag or container, removing as much air as possible.
  • Freeze for up to 3 months. When ready to use, thaw in the refrigerator overnight.

Reheating

  • To reheat, place the corn on a grill or in a pan over medium heat for a few minutes until warmed through.
  • Alternatively, microwave on a microwave-safe plate for about 1-2 minutes or until heated thoroughly.

FAQs

Got questions? Here are some common inquiries about Spicy Creamy Cajun Corn Cob.

Can I make Spicy Creamy Cajun Corn Cob without dairy?

Yes! You can easily make this recipe dairy-free by using vegan mayonnaise and plant-based sour cream.

How do I store leftover Spicy Creamy Cajun Corn Cob?

Store any leftover corn in an airtight container in the fridge for 2-3 days. For longer storage, consider freezing it.

What can I serve with Spicy Creamy Cajun Corn Cob?

This dish pairs wonderfully with grilled meats, salads, or as part of a BBQ spread.

Can I add more spice to my Spicy Creamy Cajun Corn Cob?

Absolutely! Feel free to increase the amount of chipotle powder or add your favorite hot sauce for an extra kick.

Final Thoughts

I hope you enjoy making this Spicy Creamy Cajun Corn Cob! It’s not just a side dish; it’s a celebration of flavors that will elevate any meal. Whether you’re grilling outdoors or enjoying it at home, this recipe is sure to impress your family and friends. Happy cooking!

Print

Spicy Creamy Cajun Corn Cob

Print Recipe

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Elevate your summer gatherings with this Spicy Creamy Cajun Corn Cob! This delightful dish marries the sweetness of grilled corn with a zesty Cajun cream that will have your guests asking for seconds. Perfect for busy weeknights or festive BBQs, it’s a quick and versatile recipe that can easily be tailored to suit all tastes. Whether you prefer it spicy or mild, this creamy corn cob is sure to impress, bringing vibrant flavors right to your table.

  • Author: Sarah Mitchell
  • Prep Time: 10 minutes
  • Cook Time: 15 minutes
  • Total Time: 25 minutes
  • Yield: Serves 4
  • Category: Side Dish
  • Method: Grilling
  • Cuisine: American

Ingredients


Scale

  • 4 ears corn, husked
  • 2 tablespoons olive oil
  • Salt and pepper, to taste
  • 4 tablespoons mayonnaise (vegan or regular)
  • 80 milliliters sour cream or plant-based alternative
  • 1.5 teaspoons Cajun seasoning
  • 1.5 teaspoons smoked paprika
  • 1 teaspoon onion powder
  • 1 teaspoon garlic powder
  • 1 tablespoon fresh cilantro, chopped
  • 60 grams feta or vegan cheese, crumbled
  • Juice of 1 lime

Instructions

  1. Preheat your grill to medium-high heat.
  2. Brush the corn with olive oil and season with salt and pepper.
  3. Grill the corn for 10-15 minutes, turning occasionally until charred.
  4. In a bowl, mix mayonnaise, sour cream, Cajun seasoning, smoked paprika, and garlic powder until smooth.
  5. Remove the corn from the grill and coat generously with the sauce.
  6. Top with crumbled cheese, cilantro, and a drizzle of lime juice.
  7. Serve immediately while warm for the best flavor.

Nutrition

  • Serving Size: 1 ear of corn (125g)
  • Calories: 230
  • Sugar: 4g
  • Sodium: 400mg
  • Fat: 12g
  • Saturated Fat: 3g
  • Unsaturated Fat: 8g
  • Trans Fat: 0g
  • Carbohydrates: 26g
  • Fiber: 3g
  • Protein: 5g
  • Cholesterol: 10mg

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”:”790aa9b87a”,”postId”:4465};
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
Apple and Cranberry Grilled Cheese
Next Post »
Grilled Shrimp Bowl with Avocado, Corn Salsa & Creamy Garlic Sauce

If you enjoyed this…

Grilled Shrimp Bowl with Avocado, Corn Salsa & Creamy Sauce

Grilled Shrimp Bowl with Avocado, Corn Salsa & Creamy Sauce

20 Minute Vegan Curry Ramen

20 Minute Vegan Curry Ramen

Bacon Egg Cheese Breakfast Quesadillas

Bacon Egg Cheese Breakfast Quesadillas

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