2012-01-23 4 views
1

Есть ли способ скомпоновать внутренне связанный div, когда он становится сфокусированным? Например, у меня есть ссылка в верхней части страницы, которую я внутренне свяжу (<a href="samepage.html#more">) с div далее по странице (<div id="more">), когда кто-то нажимает на этот div, есть ли способ его стилизовать, чтобы показать, что это (например, я мог бы использовать изменение цвета фона или дать ему границу, когда на нее нажимают)? На самом деле это не похоже на то, чтобы придать ему стиль зависания, это больше придает ему стиль активного или сосредоточенного или что-то в этом роде. Есть ли способ сделать это?стилизация внутренне связанного div, когда он становится сфокусированным

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

ответ

1

Вы должны связать функцию JavaScript для window.onhashchange события:

window.onhashchange = function() { 

    var hashloc = window.location.hash; 

    // hashloc is a string like '#focusDiv' 
    // .. manipulate DOM 

}; 

Этот миниатюрный работает jsFiddle пример использует JQuery, и добавляет класс CSS к ориентированной DIV, когда происходит событие изменения хэш.

Событие связано с использованием простой JS, потому что jQuery не обеспечивает этот крючок, который может не поддерживаться для старых браузеров, как отмечает Matt. Чтобы решить эту проблему, я настоятельно рекомендую this jQuery plugin для простых событий хэша.

+0

Hi, paislee. Большое спасибо. Я не так жарко на всех вещах, начиная с «j», но я рассмотрю все это. Ценю вашу помощь. – waterprism

+0

paislee, спасибо, человек. Это сделает это. Просто протестировал его. Это круто. – waterprism

0

Divs не имеет свойства фокусировки, о котором я знаю, но вы, вероятно, захотите привязать к событию при изменении хеша в URL-адресе, а затем применить изменения в div с идентификатором значение хэша.

Например, привязка к этому событию: window.onhashchange - он будет работать только в современных браузерах (т.е.8 +, Chrome 5+, Firefox 3.6+ и т. Д.) Без некоторой настройки.

+0

Hi. Хорошо. Благодарю. Может быть, использование стола может работать? Я действительно не уверен, как связать событие с URL-адресом. Вы имеете в виду с javascript? – waterprism

+0

Yep - Возможно, вы захотите использовать jQuery. С jQuery это очень просто. На самом деле, я думаю, что это будет выглядеть примерно так: '$ (window) .bind (« onhashchange », function (e) {// Изменить стиль здесь});' – Matt

+0

Хорошо. Спасибо, Мэтт. Я займусь этим. Ценить это. – waterprism

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