• 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

Indulge in Decadent Dark Chocolate Raspberry Cheesecake

Jump to Recipe·Print Recipe

If you’re looking for a dessert that’s as indulgent as it is delightful, then you’ve stumbled upon the right recipe! Indulge in Decadent Dark Chocolate Raspberry Cheesecake combines rich cream cheese and tart raspberries to create a sweet symphony of flavors. This cheesecake is perfect for any occasion—whether it’s a cozy family dinner, a celebration with friends, or simply a treat for yourself after a long day. Trust me, every bite will remind you why this is one of my all-time favorites!

Indulge in Decadent Dark Chocolate Raspberry Cheesecake image 2

This cheesecake not only tastes divine but also impresses anyone who lays eyes on it. The luscious layers of dark chocolate and fresh raspberries make it an eye-catching centerpiece that everyone will want to dig into.

Indulge in Decadent Dark Chocolate Raspberry Cheesecake image 3
Indulge in Decadent Dark Chocolate Raspberry Cheesecake image 4

Why You’ll Love This Recipe

  • Effortlessly Delicious: With just a few simple steps, you can create a showstopper dessert that tastes like it took hours to prepare.
  • Family-Friendly Treat: Kids and adults alike will rave about this creamy, chocolatey delight, making it perfect for family gatherings.
  • Make-Ahead Convenience: Prepare this cheesecake in advance and let it chill overnight—perfect for busy schedules!
  • Rich Flavor Profile: The combination of dark chocolate and raspberries offers a unique sweet-tart experience that’s hard to resist.

Ingredients You’ll Need

These ingredients are simple, wholesome, and easy to find at your local grocery store. Gather them up and get ready to whip up something truly special!

For the Crust

  • 2 cups Crushed Chocolate Cookies (Substitute with graham crackers for a classic flavor.)
  • 1/2 cup Melted Butter (No substitutions recommended.)

For the Filling

  • 16 oz Cream Cheese (Use full-fat brick-style for best results.)
  • 1 cup Granulated Sugar (Brown sugar can be used for a deeper flavor.)
  • 8 oz Melted Dark Chocolate (Opt for chocolate with 60% to 72% cocoa for balance.)
  • 1 tsp Vanilla Extract (No alternatives suggested.)
  • 3 large Eggs (Beat minimally to prevent cracks.)
  • 1 cup Fresh Raspberries (Frozen raspberries can be used but may alter texture.)

Variations

This Dark Chocolate Raspberry Cheesecake is incredibly flexible! Here are some fun twists you can try:

  • Go Vegan: Substitute cream cheese with a plant-based alternative and use aquafaba instead of eggs for a vegan-friendly version.
  • Add Some Crunch: Layer in some chopped nuts or granola in the crust for an added texture contrast.
  • Fruit Fusion: Swap raspberries with your favorite berries or even citrus fruits like oranges or lemons for a refreshing twist.
  • Chocolate Drizzle: Top your cheesecake with extra melted dark chocolate or hot honey after baking for a decadent finish.

How to Make Indulge in Decadent Dark Chocolate Raspberry Cheesecake

Step 1: Prepare the Crust

Start by preheating your oven to 350°F (175°C). In a mixing bowl, combine the crushed chocolate cookies with melted butter until well coated. Press this mixture firmly into the bottom of a springform pan to create a solid base. This step is crucial because it sets the foundation for your cheesecake!

Step 2: Mix the Filling

In another bowl, beat together the cream cheese and granulated sugar until smooth and creamy. It’s important to mix well so you eliminate lumps, ensuring every slice is silky. Then, gradually add in the melted dark chocolate and vanilla extract, mixing until fully incorporated. This rich filling is what makes this cheesecake truly decadent!

Step 3: Add Eggs and Raspberries

Carefully beat in the eggs one at a time. Remember not to overmix; this helps prevent cracks from forming during baking. Gently fold in the fresh raspberries last—this adds beautiful bursts of tartness throughout your cheesecake.

Step 4: Bake and Chill

Pour the filling over your crust in the springform pan. Bake in your preheated oven for about 60 minutes or until set around the edges but still slightly wobbly in the center. Once baked, let it cool before refrigerating it for at least four hours—or better yet, overnight! Chilling helps develop those amazing flavors.

Step 5: Serve and Enjoy!

When you’re ready to serve, carefully remove the sides of the springform pan. Slice into pieces and watch as everyone enjoys each delicious bite! You might even want to garnish each piece with additional fresh raspberries or whipped cream—just an extra touch that elevates this indulgent dessert even more!

Pro Tips for Making Indulge in Decadent Dark Chocolate Raspberry Cheesecake

Creating the perfect cheesecake can be a rewarding experience, and these tips will help you achieve that dreamy texture and flavor.

  • Use room temperature ingredients: Allowing cream cheese, eggs, and butter to reach room temperature helps to create a smooth batter without lumps, resulting in a creamier cheesecake.

  • Don’t overmix your batter: Mixing just until combined prevents incorporating too much air, which can cause cracks during baking. Less air means a denser, richer cheesecake.

  • Bake in a water bath: Placing your cheesecake pan in a larger dish filled with hot water provides even heat distribution and moisture, preventing cracks and ensuring a creamy texture.

  • Chill thoroughly before serving: Letting your cheesecake chill for several hours (or preferably overnight) allows the flavors to meld together beautifully, enhancing the overall taste.

  • Top with fresh raspberries just before serving: This adds a pop of color and freshness that complements the rich chocolate flavor while providing an attractive presentation.

How to Serve Indulge in Decadent Dark Chocolate Raspberry Cheesecake

Presenting your decadent cheesecake is just as important as making it! Here are some delightful ideas to elevate your serving experience.

Garnishes

  • Fresh Mint Leaves: A few sprigs of mint add a refreshing contrast to the rich flavors of the cheesecake.
  • Chocolate Shavings: Sprinkle some dark chocolate shavings on top for an elegant touch that enhances the dessert’s chocolatey goodness.
  • Whipped Coconut Cream: For a dairy-free option, dollop some whipped coconut cream on top for added richness and flavor.

Side Dishes

  • Vanilla Ice Cream: A scoop of creamy vanilla ice cream perfectly balances the richness of the cheesecake and adds a lovely temperature contrast.
  • Berry Compote: A homemade berry compote made from mixed berries brings out the raspberry flavor while adding sweetness and tartness.
  • Coffee or Espresso: Serving a cup of strong coffee or espresso alongside enhances the chocolate flavors and provides a comforting end to your meal.
  • Fruit Salad: A light fruit salad with seasonal fruits refreshes the palate between bites of rich cheesecake, offering a healthy complement.

Make Ahead and Storage

This Decadent Dark Chocolate Raspberry Cheesecake is perfect for meal prep, allowing you to savor its rich flavors over several days.

Storing Leftovers

  • Allow the cheesecake to cool completely.
  • Cover tightly with plastic wrap or aluminum foil.
  • Store in the refrigerator for up to 5 days.

Freezing

  • Wrap the cheesecake securely in plastic wrap and then in aluminum foil.
  • Label with the date and freeze for up to 2 months.
  • To thaw, place in the refrigerator overnight before serving.

Reheating

  • It’s best served chilled, but if you prefer it slightly warmed:
  • Preheat your oven to 300°F (150°C).
  • Place slices on a baking sheet and warm for about 10 minutes.

FAQs

Here are some common questions that might arise while making this cheesecake.

Can I use a different type of chocolate for the Indulge in Decadent Dark Chocolate Raspberry Cheesecake?

Yes! While dark chocolate enhances the richness, you can experiment with semi-sweet or even milk chocolate. Just be aware that it will alter the flavor profile.

How do I prevent cracks in my Indulge in Decadent Dark Chocolate Raspberry Cheesecake?

Minimize beating your eggs when adding them to the mixture. Overbeating can incorporate too much air, causing cracks during baking.

Can I substitute fresh raspberries in this recipe?

Yes, frozen raspberries can be used as an alternative; however, they may change the texture slightly. Ensure they are thawed and drained before using.

Final Thoughts

This Indulge in Decadent Dark Chocolate Raspberry Cheesecake is truly a labor of love that brings together rich chocolate and tart raspberries wonderfully. I hope you enjoy making it as much as I do! It’s perfect for sharing with friends or enjoying a slice all by yourself. Happy baking!

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

Indulge in Decadent Dark Chocolate Raspberry Cheesecake

5 Stars 4 Stars 3 Stars 2 Stars 1 Star

No reviews

Print Recipe

Indulge in Decadent Dark Chocolate Raspberry Cheesecake is the ultimate dessert that blends rich, creamy textures with the tangy sweetness of fresh raspberries. This stunning cheesecake is perfect for any occasion, whether you’re celebrating with friends or treating yourself after a long day. Every slice reveals luscious layers of dark chocolate and vibrant raspberry flavors, making it an irresistible choice for dessert lovers. Plus, it’s easy to prepare and can be made ahead of time, allowing you to enjoy its delightful taste without the stress. Treat your family or guests to this show-stopping dessert that will have everyone asking for seconds!

  • Total Time:

    1 hour 20 minutes
  • Yield:

    Serves approximately 10 slices 1x

Ingredients


Scale
  • 2 cups crushed chocolate cookies
  • 1/2 cup melted butter
  • 16 oz cream cheese
  • 1 cup granulated sugar
  • 8 oz melted dark chocolate (60%-72% cocoa)
  • 1 tsp vanilla extract
  • 3 large eggs
  • 1 cup fresh raspberries


Instructions

  1. Preheat your oven to 350°F (175°C). Combine crushed chocolate cookies and melted butter in a bowl and press into the bottom of a springform pan.
  2. In another bowl, beat cream cheese and granulated sugar until smooth. Gradually add melted dark chocolate and vanilla extract.
  3. Incorporate eggs one at a time, mixing minimally to avoid cracks. Gently fold in fresh raspberries.
  4. Pour filling over crust and bake for about 60 minutes until edges are set but center is slightly wobbly.
  5. Allow cheesecake to cool before refrigerating for at least four hours or overnight.
  • Author: Nova
  • Prep Time: 20 minutes
  • Cook Time: 60 minutes
  • Category: Dessert
  • Method: Baking
  • Cuisine: American

Nutrition

  • Serving Size: 1 serving
  • Calories: 360
  • Sugar: 28g
  • Sodium: 220mg
  • Fat: 24g
  • Saturated Fat: 14g
  • Unsaturated Fat: 9g
  • Trans Fat: 0g
  • Carbohydrates: 30g
  • Fiber: 3g
  • Protein: 6g
  • 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.quickdailydish.com\/wp-admin\/admin-ajax.php”,”ratingNonce”:”56e1a9bb7e”,”postId”:4171};
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
Cranberry Jalapeno Cream Cheese Dip Recipe
Next Post »
Elote Pasta Salad Recipe (Mexican Street Corn)

If you enjoyed this…

No-Bake Pecan Pie Bites

No-Bake Pecan Pie Bites

20-Minute Chili Lime Flank Steak That Melts Hearts

20-Minute Chili Lime Flank Steak That Melts Hearts

High Protein Frozen Peanut Butter Greek Yogurt Bites

High Protein Frozen Peanut Butter Greek Yogurt Bites

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