Может ли работать такой код jQuery

S3
На сайте с 29.03.2012
Offline
367
742

Есть кнопка с указанным классом. Нужно что бы при нажатии менялась надпись.

Хотел сделать на jQuery с помощью следующего кода:

if ($(".show_bl").css("display")=="block"){


$(".show_bt").html("Скрыть подробное описание ");}
else{
if($(".show_bl").css("display")=="none"){
alert ($(".show_bl").css("display"));
$(".show_bt").html("Показать подробное описание ");}}

Ничего не получается, пишет переменная не определена. Почему?

На чистом JS знаю как решить интересно было именно проверить как работает функция jQuery

дани мапов
На сайте с 06.09.2012
Offline
204
#1



if ($(".show_bl").is(':visible')) {
......
} else {
......
}
Написание и доработка скриптов (PHP, MySQL, JavaScript, jQuery) (/ru/forum/811046)
S3
На сайте с 29.03.2012
Offline
367
#2
дани мапов:


if ($(".show_bl").is(':visible')) {
......
} else {
......
}

Почему то этот код срабатывает только один раз. Полностью у меня вот так выглядит он:


$(document).ready(function(){
$("#show_bt").click(function(){

$("#show_bl").toggle(400);
});



$("#show_bt").click(function(){
if ($(".show_bl").is(':visible')) {
$("#show_bt").html("Показать подробное описание ");
} else {
$("#show_bt").html("Скрыть подробное описание ");
}


});
});

Блок скрывается/показыватся но надпись меняется на скрыть и все

дани мапов
На сайте с 06.09.2012
Offline
204
#3



$(document).ready(function(){
$("#show_bt").click(function(){
$(this).text($(this).text() == 'Показать подробное описание ' ? 'Скрыть подробное описание ' : 'Показать подробное описание ');
$("#show_bl").toggle(400);
});
});
C
На сайте с 04.02.2005
Offline
291
#4

Чтоб поддержать тему разговора.

http://jsfiddle.net/ewkpmqyc/

S3
На сайте с 29.03.2012
Offline
367
#5

Оба кода просто шикарны))) Спасибо!!!

Кстати, почему если этот код размещаю в отдельном js-файле и вызываю через header - не работает. Если добавляю в футер - все в порядке? Насколько я понимаю, ready() - как раз и предназначен для запуска после загрузки DOM.

Другие скрипты, которые находдятся в отдельном js - нормально работают...

дани мапов
На сайте с 06.09.2012
Offline
204
#6
Sly32:
Оба кода просто шикарны))) Спасибо!!!

Кстати, почему если этот код размещаю в отдельном js-файле и вызываю через header - не работает. Если добавляю в футер - все в порядке? Насколько я понимаю, ready() - как раз и предназначен для запуска после загрузки DOM.

Другие скрипты, которые находдятся в отдельном js - нормально работают...

А jquery подключается перед этим скриптом? В консоли js ошибки есть?

S3
На сайте с 29.03.2012
Offline
367
#7

Да, jQuery min подключается перед файлом скриптов. В этом же файле есть, например, скрипт бесконечной прокрутки страницы- он нормально функционирует. Консоль ни при одном варианте размещения ошибок не дает.

Правда периодически показывает какую-то ошибку в коде Google Adsense, НО она же вряд ли влияет на мой скрипт.




<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>
<link rel="stylesheet" href="//code.jquery.com/ui/1.11.1/themes/smoothness/jquery-ui.css">
<script src="//code.jquery.com/jquery-1.10.2.js"></script>
<script src="//code.jquery.com/ui/1.11.1/jquery-ui.js"></script>
<script src="<?php bloginfo('template_url'); ?>/js/scroll_style.js"></script>
<script type="text/javascript" src="<?php bloginfo('template_url'); ?>/js/myscripts.js"></script>

сам скрипт размещяю в myscripts.js

дани мапов
На сайте с 06.09.2012
Offline
204
#8

Jquery дважды подключается, может из-за этого:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js" type="text/javascript"></script>

....

<script src="//code.jquery.com/jquery-1.10.2.js"></script>

S3
На сайте с 29.03.2012
Offline
367
#9
дани мапов:
Jquery дважды подключается, может из-за этого:

Убрал лишнее подключение, ничего не изменилось. Ну да ладно, главное что работает, еще раз спасибо.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий