Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 30.06.2017, 14:03
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

проверка css :target в jquery Почему не работает?
Всем привет гуру и повелителям Js и Jq
подскажите плиз почему не работает проверка по выборке :target?
Уже и документацию прочитал что есть поддержка:
http://api.jquery.com/target-selector/
А в скрипте не работает

Вот задачка:
Есть вкладки таб которым присваивается
domain/name#id1
domain/name#id2
domain/name#id3
В зависимости от выбранного #id... открываются и закрываются div-ы:
#id1, #id2, #id3{
display: none;
}
#id1:target, #id2:target, #id3:target{
display: block;
}
Задача: определить какая вкладка в данный момент none, а какая block
я пробовал сделать так:
(document).ready(function(){
if ($("#main111 #id1:target").is(':hidden')) {
$("#state").text("блок закрыт");
}
else if ($("#main111 #id1:target"").is(':visible')){
$("#state").text("Блок все таки открыт");
и скрипт не работает.
Есть второй вариант:
отследить по url адресу
domain/name#id1
domain/name#id2
domain/name#id3
но я не знаю как это сделать

Последний раз редактировалось crystaltrumpet, 30.06.2017 в 14:44.
Ответить с цитированием
  #2 (permalink)  
Старый 30.06.2017, 14:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от crystaltrumpet
Почему не работает?
Это больше вопрос к разработчикам...
Ответить с цитированием
  #3 (permalink)  
Старый 30.06.2017, 14:16
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Это неверное использование селектора. Данный селектор выбирает элемент, id которого присутствует в URL, есть такой хеш.
Ответить с цитированием
  #4 (permalink)  
Старый 30.06.2017, 14:20
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

так как же мне тогда записать? уверен вы знаете
Задача определить скрыт или не скрыт id1,2,3
при этом у меня в css используются:
#id1, #id2, #id3{
display: none;
}
#id1:target, #id2:target, #id3:target{
display: block;
}

Последний раз редактировалось crystaltrumpet, 30.06.2017 в 14:23.
Ответить с цитированием
  #5 (permalink)  
Старый 30.06.2017, 14:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от laimas
Это неверное использование селектора.
Селектор нормальный...

<!DOCTYPE html>
<html>
<head>
<meta http-equiv='Content-Type' content='text/html; charset=windows-1251' />
<script src='https://code.jquery.com/jquery-latest.js'></script>
<!--
<script src="https://code.angularjs.org/1.3.9/angular.min.js"></script>
<script src="https://code.angularjs.org/1.3.9/angular-route.js"></script>
-->
<style type='text/css'>
#t1:target {
	color: green;
}
</style>
<script type='text/javascript'>
$(function(){
	$('#t1:target').click(function(){
		alert('Ok');
	});
});
</script>
</head>
<body>
<a href='#' id='t0'>Test 0</a>
<a href='#' id='t1'>Test 1</a>
</body>
</html>

ЦСС его понимает. А вот событие не навешивается...
Ответить с цитированием
  #6 (permalink)  
Старый 30.06.2017, 14:22
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,225

Сообщение от crystaltrumpet
так как же мне тогда записать?
Обходись без селектора...
Бери потенциально нужный элемент... Потом проверяй чего там у тебя в хеше, потом "если да кабы".
Ответить с цитированием
  #7 (permalink)  
Старый 30.06.2017, 14:24
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от ksa
Селектор нормальный
селектор то нормальный, а вот применение его есть не нормальное представление.

Если в URI domain/name#foo, и на странице есть например DIV с ID равным foo, то $('div:foo') вернет этот элемент, иначе ничего, если в URI не будет хеш.
Ответить с цитированием
  #8 (permalink)  
Старый 30.06.2017, 14:26
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

так как же мне тогда записать? уверен вы знаете
Задача определить скрыт или не скрыт id1,2,3
при этом у меня в css используются:
#id1, #id2, #id3{
display: none;
}
#id1:target, #id2:target, #id3:target{
display: block;
}
Можно выборку сделать по хешу конечно, но я не знаю как это сделать
Как написать выражение:
Если domain/name#id1 то выполняется {}?

Последний раз редактировалось crystaltrumpet, 30.06.2017 в 14:30.
Ответить с цитированием
  #9 (permalink)  
Старый 30.06.2017, 14:29
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,989

Сообщение от crystaltrumpet
так как же мне тогда записать?
читайте, что это за селектор и как он работает - https://api.jquery.com/target-selector/
Ответить с цитированием
  #10 (permalink)  
Старый 30.06.2017, 14:32
Аспирант
Отправить личное сообщение для crystaltrumpet Посмотреть профиль Найти все сообщения от crystaltrumpet
 
Регистрация: 28.06.2017
Сообщений: 42

Сообщение от laimas Посмотреть сообщение
читайте, что это за селектор и как он работает - https://api.jquery.com/target-selector/
это же написал с самого начала и оно НЕ РАБОТАЕТ!
я прошу мне объяснить а не перекидывать на то что я уже сам прочитал и да, я не такой умный как Вы и не понял...
все пишут одно и то же - читайте учитесь... тогда смысл форума, если я не могу ничего спросить чтобы меня не послали...
спрошу у людей, которые не "посылают":
Есть вкладки таб которым присваивается
domain/name#id1
domain/name#id2
domain/name#id3
В зависимости от выбранного #id... открываются и закрываются div-ы:
#id1, #id2, #id3{
display: none;
}
#id1:target, #id2:target, #id3:target{
display: block;
}
Задача: определить какая вкладка в данный момент none, а какая block
я пробовал сделать так:
(document).ready(function(){
if ($("#main111 #id1:target").is(':hidden')) {
$("#state").text("блок закрыт");
}
else if ($("#main111 #id1:target"").is(':visible')){
$("#state").text("Блок все таки открыт");
и скрипт не работает.
Есть второй вариант:
отследить по url адресу
domain/name#id1
domain/name#id2
domain/name#id3
но я не знаю как это сделать

Последний раз редактировалось crystaltrumpet, 30.06.2017 в 14:44.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Почему в мозиле не работает jquery код? blazer-05 jQuery 20 27.02.2017 21:42
Метод JQuery $.post работает через раз Dimaz AJAX и COMET 3 22.11.2012 17:52
Почему скрипт не работает с данными, которые вернул другой скрипт? Rooner jQuery 3 20.09.2012 14:56
не работает колесо в jquery knark jQuery 3 24.06.2012 12:23
Анимация. Помогите понять почему не работает. kadurban jQuery 4 08.07.2010 20:50