Показывать выбранные DIV, когда хешированные якоря находятся в URL

Один из способов воспроизвести эту ошибку: если вы хотите подключиться к иностранному серверу, но вместо этого подключиться к несуществующей локальной:

eric@dev ~ $ mysql -u dev -p
Enter password:
ERROR 2002 (HY000): Can't connect to local MySQL server through 
socket '/var/lib/mysql/mysql.sock' (2)
eric@dev ~ $

Итак, вы должны указать хост следующим образом:

eric@dev ~ $ mysql --host=yourdb.yourserver.com -u dev -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 235
Server version: 5.6.19 MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> show databases;
+-------------------------+
| Database                |
+-------------------------+
| information_schema      |
| mysql                   |
| performance_schema      |
+-------------------------+
3 rows in set (0.00 sec)

mysql> exit
Bye
eric@dev ~ $
0
задан bobzIlla 6 March 2019 в 23:30
поделиться

2 ответа

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

$(document).ready(function() {
  var contentByHash = {
    about: '#about'
    , expertise: '#expertise'
    , contact: '#contact'
  };
  var hash = window.location.hash.slice(1);

  $(contentByHash[hash] || '#default-content').show();
});
0
ответ дан Taplar 6 March 2019 в 23:30
поделиться

Вы, безусловно, можете использовать этот метод, который предложил Taplar, или вы можете отказаться от него и использовать css только с: target псевдоселектором . См. Приемы css здесь

. По сути, вы будете скрывать свои разделы. как вы уже делаете, а затем добавьте класс с display: block следующим образом

#contact:target {
    display: block;
}

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

Редактировать: Посмотрите на этот вопрос принятый ответ с использованием псевдоселекторов

[115 ] Вот ссылка на этот вопрос

Вы могли бы сделать что-то похожее на это:

/* based onhttps://stackoverflow.com/questions/6867095/css-selector-when-target-empty */
.section-wrapper>.dynamic-content:target~#default-content,
.section-wrapper>.dynamic-content {
  display: none;
}

.dynamic-content>#default-content,
.dynamic-content>.dynamic-content:target {
  display: block;
}
<div class="section-wrapper">
  <div id="default-content" class="dynamic-content">
    This is the default content
  </div>
  <!-- Dynamic Section 1 -->
  <div id="contact" class="dynamic-content">
    Contact content
  </div>
  <!-- Dynamic Section 2 -->
  <div id="expertise" class="dynamic-content">
    Expertise content
  </div>
  <!-- Dynamic Section 3 -->
  <div id="about" class="dynamic-content">
    About content
  </div>
  <!-- Dynamic Section 3 -->
</div>

Ран Вне времени, поэтому не было возможности проверить, но что-то вроде этого должно работать

0
ответ дан Thomas Prince 6 March 2019 в 23:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: