Connect with us

Milwaukee, WI

Kamala Harris bringing campaign back to Milwaukee this week

Published

on

Kamala Harris bringing campaign back to Milwaukee this week


play

Vice President Kamala Harris is bringing her presidential campaign back to Milwaukee.

Harris will return to Wisconsin’s largest city Thursday as the race with former President Donald Trump reaches its final weeks. It will be her sixth visit to the battleground state, and her third stop in Milwaukee County. She launched her presidential campaign here in late July with a rally in West Allis.

Advertisement

The campaign stop comes as Harris is locked in a tight race with Trump. In the latest Marquette University Law School poll released earlier this month, she maintained a four-point lead over Trump, within the poll’s margin of error. Among both registered and likely voters, it was 52% for Harris and 48% for Trump.

Harris’ last campaign stop in Milwaukee was at Fiserv Forum in August when she appeared with her running mate, Minnesota Gov. Tim Walz, during the second night of the Democratic National Convention.

She has also held rallies in Eau Claire, Madison and Ripon.

Trump was most recently in Wisconsin last Sunday for a rally in Juneau, which was his fourth event in the swing state in just nine days.



Source link

Advertisement

Milwaukee, WI

‘He loved his family’: Loved ones remember Milwaukee man killed days before birthday in double shooting

Published

on

‘He loved his family’: Loved ones remember Milwaukee man killed days before birthday in double shooting


MILWAUKEE — A family is mourning the loss of a 38-year-old man who was shot and killed Friday night on the city’s north side.

Milwaukee police said the shooting happened around 11:50 p.m. on the 1000 block of W. Atkinson Avenue. A 35-year-old was taken to the hospital with nonfatal injuries.

Watch: Family of Christopher White left wondering why he was killed in a double shooting Friday night in Milwaukee.

Advertisement

‘He loved his family’: Loved ones remember Milwaukee man killed days before birthday in double shooting

A 38-year-old, who family identified as Christopher White, was pronounced dead at the scene, according to police.

Family of Christopher White.

Christopher White.

On Saturday, loved ones gathered for a vigil, holding photos and praying together.

Advertisement

“He had a really big family. He was a good person,” Erica White, his mother, said.

Family members said White was one of six siblings and loved spending time with his family. The gathering came just days before what would have been his 39th birthday.

“For them to do him like that? He was in a wheelchair, he had one leg,” White’s girlfriend, Dawana Brown, cried.

Loved ones said White was paralyzed after a shooting more than a decade ago near N. 7th Street and W. North Avenue. Brown said he relied on others for care.

“He is helpless. He can’t do anything. He had no leg,” Brown said. “For them to do him like that… y’all didn’t have to kill him.”

Advertisement
38-year-old Christopher White, center wearing orange; White's family identified him as the victim of a fatal shooting Friday night on the 1000 block of W. Atkinson Avenue.

Family of Christopher White

38-year-old Christopher White, center wearing orange; White’s family identified him as the victim of a fatal shooting Friday night on the 1000 block of W. Atkinson Avenue.

Family members said White survived that earlier shooting, only to be killed in another act of gun violence.

As the investigation continues, Brown asked for prayers.

“Pray for my family, his family… everything to be alright,” Brown said.

The family has also created a GoFundMe as they seek justice.

Advertisement

Police have not said what led up to the shooting and are still seeking suspects. Anyone with information is asked to contact Milwaukee police or Crime Stoppers.


Let’s talk:

Hey there! At TMJ4 News, we’re all about listening to our audience and tackling the stuff that really matters to you. Got a story idea, tip, or just want to chat about this piece? Hit us up using the form below. For more ways to get in touch, head over to tmj4.com/tips.


It’s about time to watch on your time. Stream local news and weather 24/7 by searching for “TMJ4” on your device.

Available for download on Roku, Apple TV, Amazon Fire TV, and more.

Advertisement

Report a typo or error // Submit a news tip





Source link

Continue Reading

Milwaukee, WI

Who were winners of 2026 Journal Sentinel Milwaukee Marathon?

Published

on

Who were winners of 2026 Journal Sentinel Milwaukee Marathon?


play

  • The 2026 Journal Sentinel Milwaukee Marathon took place on April 11.
  • David Vannucchi won the men’s marathon, and Carly Schrom was the top women’s finisher.
  • Trevor Wenzel and Madeleine Davison were the first-place finishers in the half-marathon.

The 2026 Journal Sentinel Milwaukee Marathon started on April 11 near the Summerfest grounds at 7 a.m. in chilly temperatures.

By the time that David Vannucchi crossed the finish line at Humboldt Park in 2 hours, 30 minutes and 24 seconds, the sun was shining and the thermometer was pushing toward 50 degrees.

Advertisement

The 24-year-old Vannucchi, an Onalaska native who ran cross country at the University of Wisconsin, was running in the race for the first time.

“I’m from Milwaukee, I knew it was going to be good weather and a good day, so I figured I’d give it a shot,” he said.

Vannucchi finished nearly 7 minutes ahead of Sam Janssen (2:37:19) among the men’s competitors.

Carly Schrom, a 26-year-old endurance athlete from Oconomowoc, was the top women’s finisher in 2:52:41.

“Perfect weather,” Schrom said. “Could you ask for a better day?”

Advertisement

In the half-marathon, Trevor Wenzel was the first male at 1:08:32 and Madeleine Davison was the top female at 1:19:29.



Source link

Continue Reading

Milwaukee, WI

HAVE YOU SEEN HIM? Milwaukee police searching for critically missing person

Published

on

HAVE YOU SEEN HIM? Milwaukee police searching for critically missing person


Police say Smith was last seen near N. 38th St. and W. Fairmount Ave. on Milwaukee’s north side Friday at approximately 7:45 p.m.

Advertisement

Milwaukee Police Department

have you seen him? milwaukee police searching for critically missing person

SOURCE: Milwaukee Police Department

Advertisement

HAVE YOU SEEN HIM? Milwaukee police searching for critically missing person

Advertisement

Police say Smith was last seen near N. 38th St. and W. Fairmount Ave. on Milwaukee’s north side Friday at approximately 7:45 p.m.

WISN logo

Updated: 11:45 PM CDT Apr 10, 2026

Editorial Standards

Advertisement

The Milwaukee Police Department needs your help finding Bobby Smith, who police say is critically missing.Police say Smith was last seen near N. 38th St. and W. Fairmount Ave. on Milwaukee’s north side Friday at approximately 7:45 p.m.Smith is 5’11” and weighs 140 pounds. Police say he was last seen wearing a white T-shirt, black pants, and black shoes.If anyone knows where Smith may be, they are asked to call MPD District 7 at 414-935-7272.

The Milwaukee Police Department needs your help finding Bobby Smith, who police say is critically missing.

Police say Smith was last seen near N. 38th St. and W. Fairmount Ave. on Milwaukee’s north side Friday at approximately 7:45 p.m.

Advertisement

Smith is 5’11” and weighs 140 pounds. Police say he was last seen wearing a white T-shirt, black pants, and black shoes.

If anyone knows where Smith may be, they are asked to call MPD District 7 at 414-935-7272.

Advertisement

`;
}

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

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

Advertisement

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

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;

Advertisement

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

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

Advertisement

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

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

Advertisement

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;

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

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

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

Advertisement

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

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

Advertisement

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

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

Advertisement

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

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

Advertisement

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;

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

Advertisement

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

Continue Reading
Advertisement

Trending