Connect with us

Nebraska

Nebraska voter turnout is a near record-breaker • Nebraska Examiner

Published

on

Nebraska voter turnout is a near record-breaker • Nebraska Examiner


LINCOLN — The 2024  general election marked Nebraska’s second-highest number of votes cast in the state’s history.

That’s according to Secretary of State Bob Evnen’s Office, which reported Wednesday that 934,188 ballots were cast, and that several thousand early voting and provisional ballots have yet to be counted.

Still on top of the heap, in terms of votes cast, is turnout during the pandemic-era general election of 2020, with 966,920 ballots cast.

Nebraska election turnout historical data shown here does not reflect 2024 election results, which are not yet final. (Courtesy of Nebraska Secretary of State’s Office)

Preliminary turnout numbers show that 73.9% of Nebraska’s registered voters participated in the 2024 general election. That’s higher than the 72% prediction that Evnen had made earlier in the week.

Advertisement

Final turnout results could inch up slightly as remaining ballots are counted, a spokeswoman for the office said. As is, the 73.9% puts Tuesday’s general election among at least the Top 8 ever in terms of highest share of state voter participation.

No. 1 for percentage turnout remains the 1968 general election, with 80.8% turnout. That was the year Republican presidential nominee Richard Nixon defeated the Democratic nominee, incumbent Vice President Hubert Humphrey, and the American Independent Party nominee, former Alabama Gov. George Wallace.

‘Smooth and secure’

Evnen said that county election offices across the state reported consistent voter turnout throughout Tuesday with “almost all voters” prepared with voter ID, as required by the new state law.

Advertisement

“County election officials and poll workers ensured a smooth and secure Election Day for thousands of Nebraskans,” said Evnen. 

A student casts her vote at a polling place on the University of Nebraska-Lincoln campus on Tuesday. An area of the Nebraska Union was converted into a polling site for voters with addresses near campus, most of whom are students. (Courtesy of Naomi Delkamiller/Nebraska News Service)

Voters who did not have an accepted ID on Election Day were able to vote provisionally. For those ballots to be accepted, the voters can present acceptable ID to their county election office by the end of the business day Nov. 12.

Unofficial results are posted at electionresults.nebraska.gov. Representatives of the Secretary of State’s Office and county election offices are to conduct a post-election audit to verify accuracy of the results. That happens with all statewide elections. Members of the Nebraska State Board of Canvassers are to convene Dec. 2 to certify election results

Close to call

Meanwhile, on Wednesday, a few Nebraska legislative races remained close enough that the Nebraska Democratic Party said they were too close to call. Democrats were slightly ahead in those contests.

Advertisement

According to unofficial election results: Democrat Ashlei Spivey led Nick Batter, a nonpartisan, by 41 votes in northeast Douglas County’s District 13; Democrat Dan Quick led incumbent Ray Aguilar, a Republican, by 125 votes in Grand Island’s District 35; and Democrat Victor Rountree led Felix Ungerman, a Republican, by 181 votes in Sarpy County’s Legislative District 3.

Jane Kleeb, the Democratic Party’s executive director, called it a grueling election cycle.

“We stand tall that we did deliver the blue dot for Kamala Harris and Tim Walz,” she said, adding: “Our party has work to do.”

County election commissioners said they’ve yet to count early and provisional voting ballots.

In Hall County, for example, 195 largely provisional ballots in District 35 had yet to be validated and potentially included in the count, said Election Commissioner Tracy Overstreet. She said it would be seven to 10 days before the results are final.

Advertisement

Results within a certain range could trigger a recount. Douglas County Election Commissioner Brian Kruse said if there was any recount, it would happen on Dec 4.

GET THE MORNING HEADLINES.

Advertisement



Source link

Nebraska

Early voting begins for Nebraska’s May primary elections

Published

on

Early voting begins for Nebraska’s May primary elections


HASTINGS, Neb. (KSNB) -Early voting began Monday for Nebraska’s May primary elections, with voters casting ballots at county election offices.

Any registered voter in Nebraska can now vote for candidates to advance to the general election. Voters must have an application on file requesting to vote early, whether by mail or in person.

Nebraska allows voters to register with the Republican, Democratic, Libertarian and Legal Marijuana Now parties or as a nonpartisan.

Voters who complete early voting must meet voter ID requirements. A Nebraska state ID, a driver’s license or a college ID will meet those requirements.

Advertisement

Ramona Thomas, Adams County clerk, said voters need to know their party registration before voting.

“Nebraska is a closed primary so you are voting for the party in which you are registered under,” Thomas said. “If you do have a question on what you are registered under you can go to Nebraska check and put in your data and it will say what you are currently registered as.”

May 1 is the last day to register to vote in person at county election offices.

Click here to subscribe to our KSNB Local4 daily digest and breaking news alerts delivered straight to your email inbox.

Advertisement



Source link

Continue Reading

Nebraska

Nebraska’s Medical Cannabis Commission steps ahead with new funding, faces criticism for pace

Published

on

Nebraska’s Medical Cannabis Commission steps ahead with new funding, faces criticism for pace


Nebraska’s medical cannabis commission continued to face emotional testimony from patients and advocates frustrated with what they describe as a slow and restrictive rollout of the state’s program on Monday. “The question is, is your empathy real? Do you even care?” said Tiffany Tex Gustafson, a medical cannabis advocate.Patients and industry representatives argued that the four-member commission has not moved quickly enough to meet demand. Troy Burgess, a cannabis cultivator, urged officials to accelerate their work.“I implore you because of the patients behind me, let’s move the ball forward,” Burgess said. “I feel like we’re delayed or stalled.”The commission has taken steps to build out the program. It has launched a website, begun hiring staff and is preparing to expand operations after lawmakers approved legislation providing funding and fee-setting authority.Commission Chair Lorelle Mueting said the agency recently hired an administrative specialist, who is expected to begin work April 20.The commission is seeking changes to its legal representation, which is currently handled by Nebraska Attorney General Mike Hilgers, who has been critical of medical cannabis.”This motion is in no way to be considered a negative reflection on the legal services and provided to the commission so far by the Attorney General’s office,” Commissioner J. Michael Coffey said. “My problem is, I think we’re subject to the appearances and impropriety and the appearances of conflict.”The commission has also awarded four licenses to cannabis cultivators, with planting expected to begin in the coming weeks.Still, several key components of the program remain unfinished. The commission has yet to establish licensing processes for manufacturers and retailers.And since no health care practitioners are recommending marijuana yet, there are technically no patients in the state. Lawmakers recently declined to pass protections for health care providers who recommend cannabis, and current commission rules do not allow recommendations from out-of-state practitioners.Lawmakers and cannabis advocates alike have questioned the legality of that rule, but it has not been challenged in court yet.As a result, it is unclear when patients in Nebraska will be able to access the program.“When will this program actually be accessible to the people who need it?” said Crista Eggers of Nebraskans for Medical Marijuana. “In the last six months, this commission has awarded just four licenses at that pace, with approximately 18 more individual licenses that could be given out; we could be two years in the future before this program actually can start.”Mueting said she expects the recommendation process to be in place once the program is finalized later this year and said she didn’t have a comment on further action the commission would take to ensure practitioners feel legally safe recommending medical cannabis.”We’re not in that position yet,” Mueting said. “If we get everything up and running and nobody’s coming in the doors, then do we need to look at what’s going on? Probably. There’s absolutely nobody on this commission that wants this to fail.”

Nebraska’s medical cannabis commission continued to face emotional testimony from patients and advocates frustrated with what they describe as a slow and restrictive rollout of the state’s program on Monday.

“The question is, is your empathy real? Do you even care?” said Tiffany Tex Gustafson, a medical cannabis advocate.

Advertisement

Patients and industry representatives argued that the four-member commission has not moved quickly enough to meet demand. Troy Burgess, a cannabis cultivator, urged officials to accelerate their work.

“I implore you because of the patients behind me, let’s move the ball forward,” Burgess said. “I feel like we’re delayed or stalled.”

The commission has taken steps to build out the program. It has launched a website, begun hiring staff and is preparing to expand operations after lawmakers approved legislation providing funding and fee-setting authority.

Advertisement

Commission Chair Lorelle Mueting said the agency recently hired an administrative specialist, who is expected to begin work April 20.

The commission is seeking changes to its legal representation, which is currently handled by Nebraska Attorney General Mike Hilgers, who has been critical of medical cannabis.

“This motion is in no way to be considered a negative reflection on the legal services and provided to the commission so far by the Attorney General’s office,” Commissioner J. Michael Coffey said. “My problem is, I think we’re subject to the appearances and impropriety and the appearances of conflict.”

The commission has also awarded four licenses to cannabis cultivators, with planting expected to begin in the coming weeks.

Still, several key components of the program remain unfinished. The commission has yet to establish licensing processes for manufacturers and retailers.

Advertisement

And since no health care practitioners are recommending marijuana yet, there are technically no patients in the state. Lawmakers recently declined to pass protections for health care providers who recommend cannabis, and current commission rules do not allow recommendations from out-of-state practitioners.

Lawmakers and cannabis advocates alike have questioned the legality of that rule, but it has not been challenged in court yet.

As a result, it is unclear when patients in Nebraska will be able to access the program.

“When will this program actually be accessible to the people who need it?” said Crista Eggers of Nebraskans for Medical Marijuana. “In the last six months, this commission has awarded just four licenses at that pace, with approximately 18 more individual licenses that could be given out; we could be two years in the future before this program actually can start.”

Mueting said she expects the recommendation process to be in place once the program is finalized later this year and said she didn’t have a comment on further action the commission would take to ensure practitioners feel legally safe recommending medical cannabis.

Advertisement

“We’re not in that position yet,” Mueting said. “If we get everything up and running and nobody’s coming in the doors, then do we need to look at what’s going on? Probably. There’s absolutely nobody on this commission that wants this to fail.”



Source link

Continue Reading

Nebraska

Nebraska’s Bergan Reilly shows out during homecoming spring volleyball match

Published

on

Nebraska’s Bergan Reilly shows out during homecoming spring volleyball match


Nebraska volleyball’s Bergan Reilly shows out during homecoming spring match

Advertisement

ALTHOUGH THE MAVS STILL TAKE TWO OF THREE FROM THE TOMMIES THIS WEEKEND. NEBRASKA SOFTBALL KICKED OFF ITS SPRING SEASON ON SATURDAY IN SIOUX FALLS, SOUTH DAKOTA, HOME OF MOUNT RUSHMORE AND NEBRASKA. GOTHENBURG AND RILEY. AND WHEN HER TIME IN LINCOLN IS DONE, SHE MAY JUST EARN A SPOT ON NEBRASKA VOLLEYBALL’S OWN MOUNT RUSHMORE. EDDIE MESSEL HAS MORE FROM THE SANFORD PENTAGON. NOW, IT IS NO SURPRISE WHO THE FAN FAVORITE WAS HERE FOR NEBRASKA VOLLEYBALL IN THEIR SPRING MATCH OUT IN SIOUX FALLS, RILEY. IT’S HER HOMETOWN. IT WAS A HOMECOMING FOR HER IN A GYM IN THE PENTAGON THAT SHE’S PLAYED MULTIPLE VOLLEYBALL MATCHES AND BASKETBALL GAMES DATING BACK TO HER TIME IN HIGH SCHOOL. THIS WAS SUCH A BIG MOMENT FOR HER AND HER FAMILY THAT HER FAMILY EVEN GOT A BOX HERE AT THE PENTAGON FOR FRIENDS AND LOVED ONES TO TAKE IN. WATCHING BACK HOME. BUT NOW, AS A HUSKER. A LOT OF FAMILIAR FACES IN THE CROWD AND JUST HAPPY THAT I COULD BRING MY TEAM HOME AND GOT TO HAVE A LITTLE TEAM DINNER LAST NIGHT WITH MY FAMILY. SO THAT WAS FUN. BUT YEAH, I THINK THE CROWD SHOWED OUT AND IT WAS REALLY FUN AND WE PLAYED REALLY WELL TOO. THAT CROWD SHOWED LOVE. RILEY’S SISTER AND OTHERS WEARING I HEART T SHIRTS THAT EVEN RILEY TOOK NOTICE OF. I DID SELLING THEM AT SCHEELS. RILEY DIDN’T DISAPPOINT THOSE IN ATTENDANCE. A TEAM HIGH 17 ASSISTS IN JUST TWO SETS, EVEN SHOWING OFF A LITTLE BIT OF HER OFFENSE TO DO IT IN YOUR HOMETOWN WHERE THERE’S A LOT OF PRIDE, I THINK IT’S PRETTY SPECIAL PRAYER. I THINK EVERYONE KNEW THAT THIS WAS A SPECIAL DAY FOR ME, BUT I ALSO KNOW AT THE END OF THE DAY THAT IT IS A GAME AND KIND OF ONCE THE GAME STARTS, ALL THAT STUFF GOES AWAY WITH MOM, TIFFANY AND DAD BRANDON IN THE STANDS. IT WAS A DAY FILLED WITH EMOTIONS FOR THE RILEY FAMILY. WELL, I’M NOT GOING TO LIE, I WAS THE FIRST TIME SHE WAS INTRODUCED AS A SENIOR SO THAT MAYBE MADE IT MADE THE EYES A LITTLE WET. THE BEGINNING OF THE END FOR RILEY, BACK WHERE IT ALL STARTED IN THE PENTAGON. I WAS JUST KIND OF LIKE A FULL CIRCLE MOMENT TO BE ABLE TO START OFF MY SENIOR YEAR BACK IN MY HOMETOWN WITH HER HUSKER UNIFORM ON AND WITH ALL THE RED IN THE CROWD. IT’S JUST IT’S IT’S JUST SUCH AN EXPERIENCE. THE HUSKER FAITHFUL BROUGHT THE SEA OF RED FROM LINCOLN, GIVING A LITTLE TASTE OF DEVANEY INSIDE THE PENTAGON. IT WAS REALLY FUN TO HAVE THAT ATMOSPHERE AND GET TO EXPERIENCE THAT, AND I’M GLAD THAT WE COULD BRING A LITTLE BIT OF A SHOW TO THE PEOPLE OF SIOUX FALLS. SO I LOVE THIS RALLY HERE IN SIOUX FALLS. WELL, THE LOUDEST AT THE PENTAGON GOT TODAY WAS AT THE END OF SET TWO WHEN RILEY SERVED UP AN ACE TO TAKE T

Advertisement

Nebraska volleyball’s Bergan Reilly shows out during homecoming spring match

Updated: 8:46 AM CDT Apr 13, 2026

Editorial Standards

Advertisement

Nebraska volleyball kicked off its spring season in Sioux Falls, South Dakota. It’s the home of Mount Rushmore and Nebraska setter Bergan Reilly. When her time in Lincoln is done, she may just earn a spot on Nebraska volleyball’s own Mount Rushmore.See the video above for the whole story.Make sure you can always see the latest news, weather, sports and more from KETV NewsWatch 7 on Google search.NAVIGATE: Home | Weather | Local News | National | Sports | Newscasts on demand |

Nebraska volleyball kicked off its spring season in Sioux Falls, South Dakota.

Advertisement

It’s the home of Mount Rushmore and Nebraska setter Bergan Reilly.

When her time in Lincoln is done, she may just earn a spot on Nebraska volleyball’s own Mount Rushmore.

See the video above for the whole story.

Advertisement

Make sure you can always see the latest news, weather, sports and more from KETV NewsWatch 7 on Google search.

NAVIGATE: Home | Weather | Local News | National | Sports | Newscasts on demand |

Advertisement

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

Advertisement

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

Advertisement

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

Advertisement

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.ketv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.ketv.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

Advertisement

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

Advertisement

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

`;
}

function refreshWeatherIframe(containerId) {
var iframeId = ‘weather-iframe-‘ + containerId;
var iframe = document.getElementById(iframeId);
if (iframe && iframe.src) {
var originalSrc = iframe.src;
iframe.src = originalSrc + (originalSrc.indexOf(‘?’) > -1 ? ‘&’ : ‘?’) + ‘t=” + Date.now();
}
}

Advertisement

function initializeWeatherBox(container) {
var containerId = container.getAttribute(“data-container-id’);
var isWeatherBoxV2 = containerId === ‘home-weather-v2’;

function switchWeatherTab(tabName, clickedElement) {
container.querySelectorAll(‘[data-tab-id]’).forEach(function(tab) {
tab.classList.remove(‘open’);
tab.setAttribute(‘aria-selected’, ‘false’);
});

clickedElement.classList.add(‘open’);
clickedElement.setAttribute(‘aria-selected’, ‘true’);

container.querySelectorAll(‘[data-content-id]’).forEach(function(content) {
content.style.display = ‘none’;
content.setAttribute(‘hidden’, ‘true’);
});

var targetContent = container.querySelector(‘[data-content-id=”‘ + tabName + ‘”]’);
if (targetContent) {
targetContent.style.display = ‘block’;
targetContent.removeAttribute(‘hidden’);
}
}

Advertisement

function loadWeatherData() {
// If weather data is already being loaded, wait for it
if (window.weatherDataPromise) {
window.weatherDataPromise.then(function(data) {
if (data && data.data) {
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
}
});
return;
}

var location = { zip: window.DEFAULT_ZIPCODE };

try {
var storedLocations = localStorage.getItem(‘hrst.zip.history’);
if (storedLocations) {
var locations = JSON.parse(storedLocations);
if (locations && locations.length > 0) {
location = locations[0];
}
}
} catch (e) {}

var apiUrl = (window.DEWY_HOSTNAME || ”) + ‘/api/v1/weather/full/’ + location.zip;

if (window.fetch) {
window.weatherDataPromise = fetch(apiUrl)
.then(function(response) { return response.json(); })
.then(function(data) {
if (data && data.data) {
var article = container.closest(‘.article–wrapper’);
var weatherContainer = container.closest(‘.weather-box-container’);
if (weatherContainer) {
weatherContainer.style.display = ‘flex’;
updateCurrentWeather(data.data);
updateForecastTabs(data.data);
updateWeatherAlertsBar(data.data);
}
return data;
}
})
.catch(function(error) {
console.error(‘Error loading weather:’, error);
// Reset to unknown background on error
updateWeatherBackground(‘unknown’);
});
}
}

Advertisement

function updateWeatherAlertsBar(weatherData) {
var weatherWatchHeader = container.querySelector(‘.weather-watch-header’);
if (!weatherWatchHeader) return;

var weatherWatchText = weatherWatchHeader.querySelector(‘.weather-watch-text’);
var weatherWatchLink = weatherWatchHeader.querySelector(‘.weather-watch-link’);

if (weatherData.alerts_count > 0) {
weatherWatchHeader.className=”weather-watch-header has-alerts”;
if (weatherWatchText) {
weatherWatchText.textContent = `Weather Alerts (${weatherData.alerts_count})`;
}
if (weatherWatchLink) {
if (!weatherWatchLink.getAttribute(‘data-initial-href’)) {
weatherWatchLink.setAttribute(‘data-initial-href’, weatherWatchLink.getAttribute(‘href’));
weatherWatchLink.setAttribute(‘data-initial-onclick’, weatherWatchLink.getAttribute(‘onclick’) || ”);
}
weatherWatchLink.setAttribute(‘href’, “https://www.ketv.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.ketv.com/alerts”);”);
}
} else {
weatherWatchHeader.className=”weather-watch-header”;
if (weatherWatchText) {
weatherWatchText.textContent = containerId === ‘home-weather-v2’ ? ‘Watch Latest Forecast’ : ‘Latest Forecast’;
}
if (weatherWatchLink) {
var initialHref = weatherWatchLink.getAttribute(‘data-initial-href’);
var initialOnclick = weatherWatchLink.getAttribute(‘data-initial-onclick’);
if (initialHref) {
weatherWatchLink.setAttribute(‘href’, initialHref);
}
if (initialOnclick) {
weatherWatchLink.setAttribute(‘onclick’, initialOnclick);
}
}
}
}

function updateCurrentWeather(weatherData) {
if (weatherData.current) {
var tempValue = weatherData.current.temp_f || ”;
var skyValue = weatherData.current.sky || ”;
var feelsLikeValue = weatherData.current.feels_like_f || weatherData.current.temp_f || ”;

var tempEl = container.querySelector(‘.weather-grid–current-temp-value’);
if (tempEl) {
tempEl.textContent = tempValue;
tempEl.setAttribute(‘aria-label’, tempValue + ‘ degrees Fahrenheit’);
}

Advertisement

var iconEl = container.querySelector(‘.weather-grid–current-icon’);
if (iconEl && weatherData.current.icon_name) {
iconEl.className=”weather-grid–current-icon weather-current-icon icon icon-weather-” + weatherData.current.icon_name;
}

var skyEl = container.querySelector(‘.weather-grid–sky’);
if (skyEl) {
skyEl.textContent = skyValue;
skyEl.setAttribute(‘aria-label’, ‘Current condition: ‘ + skyValue);
}

var feelsEl = container.querySelector(‘.weather-grid–feels’);
if (feelsEl) {
feelsEl.textContent = feelsLikeValue + ‘°F’;
feelsEl.setAttribute(‘aria-label’, feelsLikeValue + ‘ degrees Fahrenheit’);
}

var weatherContainer = container.querySelector(‘.weather-temp-container’);
if (weatherContainer) {
var summary = ‘Current temperature ‘ + tempValue + ‘ degrees Fahrenheit, ‘ +
skyValue + ‘, feels like ‘ + feelsLikeValue + ‘ degrees’;
weatherContainer.setAttribute(‘aria-label’, summary);
}

updateWeatherBackground(weatherData.current.icon_name);
}
}

Advertisement

function updateWeatherBackground(iconName) {
try {
var bgPath = weatherImages.backgrounds[iconName] || weatherImages.backgrounds.unknown;
container.style.backgroundImage=”url(” + bgPath + ‘)’;
} catch (e) {
console.log(‘Error updating weather background:’, e);
}
}

function updateForecastTabs(weatherData) {
var visibleItems = isWeatherBoxV2 ? 6 : 5;

if (weatherData.hourly) {
var hourlyContainer = container.querySelector(‘.weather-hourly-forecast’);
if (hourlyContainer) {
var html=””;
var maxHours = Math.min(visibleItems, weatherData.hourly.length);

for (var i = 0; i 0 ? currentIndex – 1 : tabs.length – 1;
tabs[prevIndex].focus();
break;
case ‘ArrowRight’:
e.preventDefault();
var nextIndex = currentIndex

Loading more articles…

Advertisement



Source link

Continue Reading

Trending