91³Ô¹ÏÍø

Watch CBS News

Fireworks permit denied for Long Beach's "Big Bang on the Bay" Independence Day celebration

For the first time in 15 years, Long Beach's "Big Bang on the Bay" will be lacking its signature "bang" after the event's fireworks permit was denied by California state officials. 

The annual Fourth of July celebration, which typically lit up the night sky over Alamitos Bay the night before Independence Day, will be without its famous fireworks show after the California Coastal Commission denied the permit, leaving city leaders toying with the idea of canceling the event altogether. 

"Fireworks to me, it just seems like the best way," said John Morris. "Any other option is going to be hard to rally as many people as we rally."

Morris, who owns a waterfront restaurant on the bay, has helped put the event on for more than a decade, something that has not only turned into a family affair but a favorite among Long Beach locals and visitors.

Last year, the CCC said that they would have to transition the event from pyrotechnics to drones because they have less of an environmental impact on the ocean. On Wednesday, Morris appealed their decision.

"We do not pollute the water, we do not affect wildlife," Morris said during his appeal hearing. "We have done testing for 10 years."

His appeal was denied, despite receiving support from Long Beach City Council members like Kristina Duggan, who said that the event provides the community with a "controlled professionally managed alternative" as opposed to unregulated illegal fireworks, which have a "much greater impact on our neighborhood."

On top of that, they say that the cost of the drone show, paired with limited beach and boat access, makes it a non-option for the event.

"So, all of a sudden, from a $40,000 fireworks show, we'd be up to $200,000," Morris said during the hearing.

Big Bang by the Bay organizers say that the fireworks show brings in community donations that they, in turn, donate to nonprofits across Long Beach. 

"The Belmont Shore Rugby Club has a workforce initiative. They have a scholarship initiatives and they just said this is their biggest fundraising event a year," said Shane Hardy, who runs the nonprofit organization Eminent Giving Foundation. 

He's one of many who think that despite the denial, the city should come together for some sort of event, even if they have to get creative. 

"We're gonna have to get a little bit artsy and creative of how we're gonna make this year happen," Hardy said. 

View CBS News In
CBS News App Open
Chrome Safari Continue
const link = doc.createElement('link'); link.rel = 'stylesheet'; link.href = '/fly/fly/bundles/cbsnewscontent/css/cmp-banner.min.css?v=296763317a51cab90faa73f1bb146d5c'; doc.head.appendChild(link); doc.body.innerHTML = CONSENT_MESSAGE; } else { el.insertAdjacentHTML('afterend', CONSENT_MESSAGE); } }); } function hidePrivacyMessage() { // Remove from the main document document.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); // Remove from inside any iframes document.querySelectorAll('iframe').forEach(iframe => { const doc = iframe.contentDocument || iframe.contentWindow.document; doc.querySelectorAll(`.${CONSENT_MESSAGE_CLASS}`).forEach(el => el.remove()); }); } function activateGatedScripts() { // Handle both new format (cmp-gated-script) and old OneTrust/Ketch format (optanon-category-4) const gatedScripts = Array.from(document.querySelectorAll('script.cmp-gated-script, script.optanon-category-4')); // Activate scripts sequentially with a small delay to avoid timing issues let delay = 0; gatedScripts.forEach(function(placeholder, index) { setTimeout(function() { // Skip if already processed if (placeholder.hasAttribute('data-cmp-processed')) { return; } placeholder.setAttribute('data-cmp-processed', 'true'); const newScript = document.createElement('script'); newScript.type = 'text/javascript'; // Try new format first (data-cmp-src), then fall back to old format (data-src) const src = placeholder.getAttribute('data-cmp-src') || placeholder.getAttribute('data-src'); if (src) { newScript.src = src; } else if (placeholder.textContent) { // Inline script - just copy the content newScript.textContent = placeholder.textContent; } // Handle new format attributes (data-cmp-attrs) - for both inline and external scripts const attrs = placeholder.getAttribute('data-cmp-attrs'); if (attrs) { const tempDiv = document.createElement('div'); tempDiv.innerHTML = '
<\/div>'; const tempAttrs = tempDiv.firstChild.attributes; for (let i = 0; i < tempAttrs.length; i++) { // For external scripts, allow defer/async. For inline scripts, skip them (not valid) if (src || (tempAttrs[i].name !== 'async' && tempAttrs[i].name !== 'defer')) { newScript.setAttribute(tempAttrs[i].name, tempAttrs[i].value); } } } // Copy other attributes from old OneTrust format for (let i = 0; i < placeholder.attributes.length; i++) { const attr = placeholder.attributes[i]; // Skip attributes we've already handled or don't want to copy if (!['class', 'data-src', 'data-type', 'data-cmp-src', 'data-cmp-attrs', 'data-cmp-processed', 'type', 'async', 'defer', 'src'].includes(attr.name)) { newScript.setAttribute(attr.name, attr.value); } } placeholder.parentNode.replaceChild(newScript, placeholder); // If external script, manually trigger window.onload handlers after it loads // This handles widgets that use window.onload for initialization if (src) { newScript.addEventListener('load', function() { // If page already loaded and script set a new onload handler, trigger it if (document.readyState === 'complete' && window.onload) { const originalOnload = window.onload; window.onload = null; // Clear temporarily to prevent loops originalOnload(); // Execute the handler } }); } }, delay); delay += 500; // 500ms delay between each script to allow full loading }); } cbsoptanon.onScriptsReady(function(cmp) { cmp.ot.targetingAllowed(function(allowed) { if (!allowed) { showPrivacyMessage(); } else { activateGatedScripts(); } }); cmp.ot.awaitInitialConsent(function(consent_model) { cmp.ot.addOnConsentChangedHandler(function() { cmp.ot.targetingAllowed(function(allowed) { if (allowed) { hidePrivacyMessage(); activateGatedScripts(); } else { showPrivacyMessage(); } }); }); }); });