Evento não está funcionando no elemento criado dinamicamente

Eu estou puxando meu cabelo para fora tentando descobrir por que o evento mouseover não funcionará com o manipulador .on com um elemento criado dinamicamente a partir do ajax. A única coisa que parece funcionar é o código com .live, mas eu entendo que ele está obsoleto.

$(".dropdown ul li").live("mouseover", function() {
alert('mouseover works');
});

No entanto, quando tento usar o .on, ele não funciona - não importa que variações eu tente (document.ready, .mouseover, etc etc)

$(".dropdown ul li").on("mouseover", function() {
alert('mouseover works');
});

Os manipuladores de eventos estão na parte inferior do código, portanto, são executados por último. Alguém tem uma ideia do que estou fazendo errado?