2011-04-14 4 views
43

Если свойство visibility стиля элемента HTML установлено в hidden, оно по-прежнему доступно для кликов?CSS: Является ли скрытый объект интерактивным?

Когда свойство display установлено на none, элемент не является частью дерева DOM, так что это не проблема. Но мне было интересно, будет ли элемент hidden реагировать на события мыши.

+2

Он полностью удаляется из потока элементов, но я не уверен, если это взято из дерева DOM ... – BoltClock

+3

Вы не совсем правы насчет «отображения: ни один». Объект с «display: none» все еще является частью дерева DOM (поэтому вы можете найти его, например, jQuery), но он не является частью визуального дерева. –

+0

Если вы хотите иметь объект clickable, вы можете использовать вместо него «непрозрачность». –

ответ

51

С display: noneявляется еще часть DOM. Он просто не отображается в окне просмотра.

Как для кликов по элементам с visibility: hidden, то события не уволены.

jsFiddle.

$('div').click(function() { 
 
    alert('Hello') 
 
});
div { 
 
    width: 100%; 
 
    height: 100%; 
 
    visibility: hidden; 
 
}
<div>abc</div>

+0

Да, я должен проверить сначала ... – BoltClock

+0

@BoltClock Я не был уверен, в каком направлении он будет идти, но у меня было ощущение, что это не сработает :) – alex

+0

спасибо. также, +1 для ссылки на jsfiddle. – euphoria83

4

Номер

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

0

Создание div скрыто или отображает его, только делает его недоступным для пользователя. Но в реальности его все еще элемент в dom, и вы можете щелкнуть его с помощью другого java-скрипта/jquery, как это.

$('div').click(function() { 
    alert('Hello') 
}); 
$('div').click(); 

jsfiddle enter image description here