Connect with us

Wisconsin

Annual contest to determine Coolest Thing Made in Wisconsin kicks off

Published

on

Annual contest to determine Coolest Thing Made in Wisconsin kicks off


MADISON — Wisconsin Manufacturers & Commerce (WMC) — the combined state chamber and manufacturers’ association — and Johnson Financial Group are again partnering to host a contest to determine the ‘Coolest Thing Made in Wisconsin.’ The popular competition highlights Wisconsin’s robust manufacturing industry, which contributes over $71 billion in total economic output to the state. This year, the contest organizers are refreshing the program with a new logo and rebranded website as a nod to the modernization of the manufacturing industry as a whole. The ninth annual contest will culminate by crowning a Wisconsin-made product as the Coolest Thing Made in Wisconsin.

“Wisconsin is home to nearly 500,000 men and women who are employed by our thousands of manufacturers,” said WMC President & CEO Kurt R. Bauer. “This contest highlights not only the cool products made in our state, but also the entrepreneurship and work behind each product. Our manufacturers are the best in the country, and we have a great opportunity to underscore their contributions to our economy, the high-paying careers they create, and the innovative, necessary products they make.”

Any product that is manufactured in Wisconsin qualifies for the contest, and nominations will be accepted starting on Aug. 19 at the new website, www.madeinwis.com. 

WMC and Johnson Financial Group have partnered together for this contest since 2016, and Wisconsinites have cast over one million votes since its inception. Over a thousand products representing a wide array of industries have been nominated over the years, and winning products have included beverage dispensers, firetrucks, cranes, motorcycles, military vehicles, robotic carts, rifles, and even kringle.

Advertisement

Following the nomination period from Aug. 19 through Sept. 6, a popular vote will determine the Top 16 products that will be placed in a bracket-style tournament called Manufacturing Madness. Products will compete against one another in head-to-head matchups, and the products that receive the highest votes in each matchup will advance to the next round. Manufacturers, consumers, employees and other Wisconsinites are encouraged to vote once per day, per device through the rounds of voting.

This year’s Coolest Thing Made in Wisconsin will be announced at WMC’s Business Day in Madison event on Oct. 17.



Source link

Wisconsin

DPI report highlights difficulties retaining teachers in Wisconsin

Published

on

DPI report highlights difficulties retaining teachers in Wisconsin


Nearly one-third of people who complete teacher training never enter the classroom in Wisconsin, and nearly half of the people who do become teachers leave the profession within eight years.

That’s according to a new report from the state Department of Public Instruction that uses data from the 2023-24 school year. It highlighted ongoing challenges with retention even as overall staffing levels at schools remain relatively stable.

The report showed the number of teachers in Wisconsin has remained steady at 64,354 in the 2022-23 school year and 63,956 in the 2023-24 school year. But it also highlighted challenges retaining mid-career teachers due to compensation declines over the last decade and a half.

Understanding Wisconsin, Together.

WPR’s “Wisconsin Today” newsletter keeps you connected to the state you love without feeling overwhelmed. No paywall. No agenda. No corporate filter.

Advertisement

State Superintendent Jill Underly attended a roundtable in Green Bay Monday with K-12 leaders and educators from northeast Wisconsin to talk about ways to boost teacher recruitment and retention in Wisconsin. 

When districts lose educators, Underly said it results in larger class sizes, fewer courses being offered, less individual support for students and a loss of experience in the teaching labor market. 

“We have to focus on keeping great educators in our classrooms,” she said. “They need to feel supported, they need to feel connected and they have to have opportunities to grow.”

Advertisement

Of the more than 5,256 people who completed a teaching training program in the state in 2023-24, around 30 percent, or 1,688, did not become teachers in Wisconsin. 

For those who entered the teaching profession, only 52.6 percent were still working in Wisconsin classrooms by their eighth year on the job, the report says. For special education teachers, the retention rate was only 43.2 percent. 

Underly and others who spoke during the roundtable said compensation is a major reason teachers are either leaving the profession or leaving the state.

According to the report, the total compensation for people entering their 15th year of teaching in 2024 was 22 percent less than it was in 2010 when adjusting for inflation. For teachers entering their 30th year, it was 13 percent less.

In inflation-adjusted dollars, the median teacher compensation in the state in 2010, including salary and benefits, was $110,722. By 2024, that number fell to $88,106.

Advertisement

Underly said low pay means some teachers have to work second jobs to stay in the profession.

“We’re asking a lot of these individuals to work multiple jobs when a job like teaching is so important and so highly valued in our communities,” Underly said. “We’re burning these individuals out, so they do make these choices five (to) eight years in. That’s when we’re losing them.”

Kewaunee School District Superintendent Scott Fritz and Green Bay Area Public School District Superintendent Vicki Bayer participate in an educator workforce roundtable on Monday, April 6, 2026. Joe Schulz/WPR

Andrea Huggett, a middle school math teacher in the Green Bay Area Public School District, said compensation is a major factor. She said she’s “absolutely” been tempted to leave teaching because she could make more money in another profession.

“I’m not in it for the compensation. I’m in it to make a difference,” she said. “But that is a huge factor in my day-to-day life. I have a family, I have a home, I have a mortgage, I have insurance that’s costing more each year, and it’s a big factor in a lot of people’s decisions.”

Mai Vang, director of recruitment and talent development for the Green Bay Area Public School District, said compensation is one of the harder problems for districts to address and is not something that “one person or one school district” would be able to solve. 

Advertisement

Underly said Wisconsin’s “public schools are severely underfunded,” limiting the ability of districts to address the compensation issue. She said the most recent state budget did not include any new general aid to school districts, which requires schools to do more with less. 

“That really puts the burden on the school district, which then puts the burden on local taxpayers to have to pass a referendum,” she said.

Kewaunee School District Superintendent Scott Fritz said his district has not passed an operational referendum but has had to make budget cuts in recent years to try to ensure teachers receive fair compensation.

“We made that choice because we want to continue to have funding so that we can pay our teachers a competitive rate,” he said. “I can’t compete with where Green Bay is at, but I want to be able to compete with school districts our size.”



Source link

Advertisement
Continue Reading

Wisconsin

Wisconsin center Nolan Winter putting up historic efficiency numbers

Published

on

Wisconsin center Nolan Winter putting up historic efficiency numbers


Wisconsin Badgers center Nolan Winter is known as an efficient scorer, but few Badgers fans likely realize just how efficient he has been.

According to Sports Reference, Winter owns the best 2-point field goal percentage in the Big Ten since the 1992-93 season, shooting 69% across his three years in Madison. He sits ahead of stars such as Chris Webber, Owen Freeman and Moritz Wagner on the list of all-time leaders. Winter also made 33% of his 3-pointers this season. His efficiency stands out even more as he shifted to center last year, taking over for Steven Crowl after he graduated. The move required Winter to adapt to a more physical role, with the team needing him in the post.In 31 games this season, Winter averaged 13.1 points and 8.5 rebounds per game. If he returns to Wisconsin next season, he could finish his career as one of the most efficient scorers in program history.

If the Badgers retain Winter, expect Greg Gard and his staff to make him a bigger focal point of the offense next season. Given Winter’s scoring ability, it would be hard to justify anything else. The recent addition of Owen Foxwell, a facilitating point guard, could also create more opportunities for Wisconsin’s frontcourt.

Winter’s rise is another point in Gard’s favor. In recent years, he has helped develop players such as Steven Crowl, John Tonje, John Blackwell, AJ Storr and Nick Boyd.

Advertisement

Contact/Follow @TheBadgersWire on X (formerly Twitter) and like our page on Facebook to follow ongoing coverage of Wisconsin Badgers news, notes and opinion





Source link

Continue Reading

Wisconsin

All clear given by Marquette police following investigation outside Church of the Gesu

Published

on

All clear given by Marquette police following investigation outside Church of the Gesu


A stretch of Wisconsin Avenue that travels through Marquette University in Milwaukee is back open Sunday afternoon following a police investigation.

Advertisement

All clear given by Marquette police following investigation outside Church of the Gesu

A stretch of Wisconsin Avenue that travels through Marquette University in Milwaukee is back open Sunday afternoon following a police investigation.

Advertisement

VERY NICE. >> THANK YOU EASTER BUNNY. >> THANK YOU. >> SO ALL RIGHT. THANK YOU STEPHANIE. AND BEFORE WE GO, WE WANT TO BRING YOU AN UPDATE TO THAT BREAKING NEWS. WE’VE BEEN FOLLOWING ALL SHOW MARQUETTE. POLICE SAY THE INVESTIGATION OUTSIDE THE CHURCH OF THE GESU HAS RESOLVED. GIVING THE ALL CLEAR

Advertisement

All clear given by Marquette police following investigation outside Church of the Gesu

A stretch of Wisconsin Avenue that travels through Marquette University in Milwaukee is back open Sunday afternoon following a police investigation.

Updated: 6:09 PM CDT Apr 5, 2026

Editorial Standards

Advertisement

An all clear has been given following a police investigation along a stretch of Wisconsin Avenue that travels through the campus of Marquette University in Milwaukee. Late Sunday afternoon, police could be seen focusing on a red Chevy Cruze parked outside the Church of the Gesu, and Wisconsin Avenue was closed between 11th and 13th streets. This was after Marquette University Police issued a safety alert asking people to avoid the area of 12th Street and Wisconsin Avenue.Shortly before 5 p.m., a WISN photojournalist was told by a Milwaukee Police Department officer to move back at the scene due to the bomb squad being called in. A K-9 was spotted smelling the car, as well as both around and inside the church. The K9 didn’t appear to find anything.Milwaukee police left around 5:30 p.m., after Wisconsin Avenue reopened. However, Marquette University police remained outside the church and around the Chevy Cruze. University police said shortly before 6 p.m. the issue had been resolved.12 News has reached out to Milwaukee and Marquette University police for details and will update this article as information becomes available.

An all clear has been given following a police investigation along a stretch of Wisconsin Avenue that travels through the campus of Marquette University in Milwaukee.

Advertisement

Late Sunday afternoon, police could be seen focusing on a red Chevy Cruze parked outside the Church of the Gesu, and Wisconsin Avenue was closed between 11th and 13th streets. This was after Marquette University Police issued a safety alert asking people to avoid the area of 12th Street and Wisconsin Avenue.

Shortly before 5 p.m., a WISN photojournalist was told by a Milwaukee Police Department officer to move back at the scene due to the bomb squad being called in. A K-9 was spotted smelling the car, as well as both around and inside the church. The K9 didn’t appear to find anything.

Milwaukee police left around 5:30 p.m., after Wisconsin Avenue reopened. However, Marquette University police remained outside the church and around the Chevy Cruze. University police said shortly before 6 p.m. the issue had been resolved.

Advertisement

12 News has reached out to Milwaukee and Marquette University police for details and will update this article as information becomes available.

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’;

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

Advertisement

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

var location = { zip: window.DEFAULT_ZIPCODE };

Advertisement

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;

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

Advertisement

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.wisn.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘mobile-weather’, “https://www.wisn.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;
}

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

Advertisement

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

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

Advertisement

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

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.wisn.com/alerts”);
weatherWatchLink.setAttribute(‘onclick’, “return handleWeatherLinkClick(event, ‘click_alerts’, ‘click’, ‘sidelist-weather’, “https://www.wisn.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

Loading more articles…



Source link

Advertisement
Continue Reading

Trending