Eu tenho o seguinte:
JS:
$(function() {
$(".fullscreen-toggle").toggle(
function() {
$("body").addClass("fullscreen");
$(".fullscreen-toggle").wrap("<div class="fixed-container fixed-toggle" />");
$(".new_post .wysihtml5-toolbar").wrap("<div class="fixed-container fixed-toolbar" />");
$(".new_post .form-actions").wrap("<div class="fixed-container fixed-submit" />");
$(this).children(".toggle-fullscreen").hide();
$(this).children(".exit-fullscreen").show();
},
function() {
$("body").removeClass("fullscreen");
$(".new_post .fixed-container").remove();
$(this).children(".toggle-fullscreen").show();
$(this).children(".exit-fullscreen").hide();
}
);
// Fade in/out for post fullscreen form
$(".fullscreen .fixed-toolbar").on("mouseover", function(){
$(this).show();
});
HTML:
Assim, a barra de ferramentas deve aparecer quando o usuário coloca o mouse sobre a barra de ferramentas (eu estou usando on
Porque .fullscreen .fixed-toolbar
estão sendo adicionados dinamicamente com jQuery). Mas quando eu faço isso, nada acontece.
O que estou fazendo errado?
EDITAR:
Eu tentei o mesmo em um link e foi acionado. Existe uma maneira diferente de fazer isso enquanto paira uma div?
Respostas:
1 para resposta № 1Eu acho que você está usando on
no caminho errado.
Experimente com
$(document).on("mouseover", ".fullscreen .fixed-toolbar", function(){
$(this).show();
});
1 para resposta № 2
Eu acho que eu tenho o seu problema:
$(document).on("mouseover", ".fullscreen .fixed-toolbar", function(){
$("ul[class$="toolbar"]", this).show();
});
Tente isso e veja se ajuda.
0 para resposta № 3
Isso não vai funcionar porque o elemento que deve receber o mouseover
evento está oculto.
Para corrigir isso, você pode ter uma div com conteúdo transparente usando CSS.
0 para a resposta № 4
Quando seu on()
atribuição é avaliada não há .fullscreen .fixed-toolbar
elementos, então nada acontece. Você poderia tentar colocá-lo logo após o wrap()
:
$(".new_post .wysihtml5-toolbar").wrap("<div class="fixed-container fixed-toolbar" />");
$(".fullscreen .fixed-toolbar").on("mouseover", function(){
$(this).show();
});