2013-04-22 2 views
0

У меня есть loginbox (синий), который открывается при наведении курсора на текстовый вход (желтый). Ящик остается открытым, когда вы заходите в окно регистрации, но закрывается, когда вы его оставляете (мышь в зеленой зоне).Закрыть hover div только при нажатии на внешний блок

Это ожидаемое поведение с моей текущей CSS (с использованием зависать и дисплей: нет/блок)

Я хотел бы кнопку (синий), чтобы оставаться открытым, даже при входе в зеленую зону. Но когда вы нажимаете в зеленой зоне, окно входа в систему (синий) закрывается (отображение: нет)

Возможно, это возможно только с помощью javascript/jQuery, но я понятия не имею, как это сделать. Кто-нибудь может мне с этим помочь?

Не беспокойтесь о div id и классах. Я изменю код на свои нужды.

enter image description here

+0

Если вы позволите и попросить решения на основе JQuery, вы получите много помощи очень быстро. –

+1

У меня нет проблем с jQuery – AgeDeO

+0

Можете ли вы опубликовать образец кода? – muneebShabbir

ответ

2

Попробуйте http://jsfiddle.net/steelywing/gnyyB/

$('#main').mouseenter(function() { 
    $('#menu').show(); 
}); 

// To prevent hide #menu when click on #main 
$('#main').click(function (e) { 
    e.stopPropagation(); 
}); 

// Click outsite of #menu 
$('html').click(function() { 
    $('#menu').hide(); 
}); 
+0

Возможно, вы захотите объяснить, почему требуется 'e.stopPropagation()', а также зачем прикладывать действие click-to-hide к 'html' вместо' body'. OP не является экспертом JavaScript/jQuery. –

+1

'e.stopPropagation()' следует избегать скрыть '# menu', когда нажимают на' # main', 'html' и' body' также должны работать, до u –

+0

Причина, по которой я упоминаю 'html' и' body тег связан с причудой в jsFiddle. Размер элемента тела меньше, чем у корня (html), поэтому демонстрация работает лучше при привязке к элементу html. При привязке к элементу body вам нужно щелкнуть строку, содержащую контент, чтобы активировать действие. –

0

вы можете использовать

function example(){ 

    var divId = document.getElementById("divId"); 

    divId.style.display = "block"; 

    } 

Здесь divId является синим цветом DIVID и вызвать эту функцию в onhover для зеленых дел.

+0

Затем синий блок остается открытым. Я бы хотел, чтобы он был закрыт, когда его щелкнули в зеленой зоне. Синяя коробка также должна открываться только при наведении желтого окна – AgeDeO

+0

, затем вызвать другую функцию в div нажмите – PSR

+0

Можете ли вы показать мне? – AgeDeO

Смежные вопросы