91³Ô¹ÏÍø

Watch CBS News

Des Plaines deals with near-record flooding as water levels along river rises

With all the rain tonight and so far this spring, city officials along the Des Plaines River fear levels could reach major flood stage soon.

Heavy rain hit Chicago Tuesday night on top of multiple rain events since March, which is why the river is rising.

Reports said it's already at 15 feet in Des Plaines, and five feet away from the record. 

"I don't want it, I am praying it doesn't happen, but they are saying that it is going to," said resident Madie Mall.

For the last 38 years, Mall raised her family in this home off a Gurnee Creek that feeds into the Des Plaines River. On Wednesday morning, she and her neighbors woke up to water over the road.

"One inch is perfect, three and a half on top of an inch, on top of two inches, and kept going, and then it was like 'this is too much,'" she said. "I told him, get a hold of Peggy, sandbag it, get it up."

"When they say do it, I know it's serious, I got to do it," said resident Peggy Reid.

Reid also lives next to the creek.

"The sandbags, I just went out and purchased 20 more today," she said.

Reid showed the board and sandbags she puts in her driveway, which she said prevent some water from reaching her house. She said she moved in, knowing it was a flood zone.

"I looked at the history, and it was only two floods in 50 years, so I figured I was doing pretty good except I've had two in four years, so the odds are not with me," she said.

Lincolnshire village manager, Brad Burke, said they're now in more of a monitoring stage. His concern is that some people may not be prepared, especially the families who moved into the flood zone in the last nine years, right after the last major flood.

"We expect about half of those homes have sold since 2017," he said.

In Des Plaines, the Public Works department is already preparing for rising waters. A barrier is in place on River Road along with a pump. They said the pump puts water in the road back in the river to move it downstream.

As for Mall, even though she's seen her fair share of flooding, she said this is home, and she's not moving.

"It's private, it's quiet, dead-end street, raised three of my girls here, it was great, it was wonderful, but we are not ready to move because we won't find anywhere like this," she said.

The city of Des Plaines has sandbags available at the Public Works building if people want to protect their homes and businesses.

They also have no road closures yet, but they do expect significant delays near the river and advise drivers to avoid the area.

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(); } }); }); }); });