Форум программистов, компьютерный форум, киберфорум
jQuery
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
 Аватар для Heidel
115 / 115 / 39
Регистрация: 11.10.2011
Сообщений: 649

Не срабатывает скрипт jQuery

24.10.2012, 13:59. Показов 936. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Новости на странице выводятся в таком виде

http://static.diary.ru/userdir... 481118.jpg

код HTML
HTML5
1
2
3
4
5
6
7
   <div class="news">
                <div class="news-date">12/01/2004</div>
                <div style="clear: both;"></div>
                <div class="news-text short"><a href="/">Lorem ipsum dolor sit amet,</a> consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. tUt wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis Lorem ipsum dolor sit amet consectetuer adipiscing elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam erat volutpat. tUt wisi enim ad minim veniam, quis nostrud exerci tation ullamcorper suscipit lobortis nisl ut aliquip ex ea commodo consequat. Duis</div>
                <div class="news-link"><a href="/">• read more</a></div>
                <div style="clear: both;"></div>
            </div>
текст новости в блоке news-text показан не полностью, для этого к нему добавлен класс

CSS
1
2
3
4
    .short {
        height: 80px;
        overflow: hidden;
    }
Нужно, чтобы по клику на ссылку read more класс short удалялся и текст показывался целиком, а текст в ссылке заменялся на collapse, а затем при клике на collapse класс short снова добавлялся, и текст в ссылке обратно заменялся на read more.
Для этого пишу скрипт на jQuery

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
    <script>
            jQuery(document).ready(function(){
                jQuery("article #news-box .news .news-link").click(function() {
                    jQuery(this).closest("article #news-box .news .news-text").removeClass("short");
                    jQuery(this).html("• collapse");
                    false;
                    },
                                function() {
                    jQuery(this).closest("article #news-box .news .news-text").addClass("short");
                    jQuery(this).html("• read more");
                    false;
                    });
            </script>
но он не срабатывает, при клике на ссылку ничего не происходит. Подскажите, как его поправить, чтобы он работал?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
24.10.2012, 13:59
Ответы с готовыми решениями:

Не срабатывает скрипт jQuery
Для списков объектов &lt;div class='view-source'&gt; &lt;h3&gt;&lt;a href=&quot;#&quot; class=&quot;click&quot;&gt;Магнитные барабаны&lt;/a&gt;&lt;/h3&gt; ...

Не срабатывает if в jquery ui
Подскажите в чем ошибка? Не отрабатывает условие if и счетчик, т.е. условие продолжает работать, даже когда счетчик становится...

Jquery Corners, не срабатывает в IE
Здравствуйте всем! Решил использовать плагин для Jquery Corners для закругления углов, в частности в IE...если использовать div без...

1
 Аватар для Soldado
901 / 833 / 198
Регистрация: 28.06.2012
Сообщений: 1,607
Записей в блоге: 4
24.10.2012, 22:11
1.Что такое article?
2.Не нашёл id #news-box!
3.Идентификаторы элементов, для которых задают общее событие следует перечислять через запятую.
4. Класс short удаляйте у тех элементов у которых он (class="short") есть.
5.Зачем использовать ссылки если никуда не собираетесь переходить? Если уж используете, то прийдётся отменять стандартное действие при клике по ссылке preventDefault(). Лучше, в таких случаях, использовать span вместо ссылок.

Проще руководствоваться следующей логикой - при клике по одной из двух ссылок в блоке, находим общего прародителя .news и для этого конкретного блока находим дочерний элемент .news-text. Анализируем - есть ли класс .short. Если есть удаляем его, поднимаясь вверх и опускаясь вниз к нужному элементу относительно кликнутого. Меняем текст. Иначе подобным образом добавляем класс и меняем текст.
Код такой:
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
<script type="text/javascript">
$(document).ready(function(){
$(".news-text a, .news-link a").click(function (event) {
event.preventDefault();
var classShort= $(this).closest('.news').children('.news-text').hasClass('short');
    if(classShort){
        $(this).closest('.news').children('.news-text').removeClass('short');
        $(this).closest('.news').children('.news-link').children('a').html('&bull; collapse');
        }
    else{
    $(this).closest('.news').children('.news-text').addClass('short');
    $(this).closest('.news').children('.news-link').children('a').html('&bull; read more');
    }
      });            
 });/*end  ready*/
 </script>
Возможно я чего-то не уловил, но то, что получилось у меня, можно увидеть на демо-странице
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.10.2012, 22:11
Помогаю со студенческими работами здесь

Не правильно срабатывает load в jQuery
Доброго времени суток! Помогите понять в чём дело! Вот очень простой скрипт: $(document).ready(function(){ ...

не срабатывает валидация формы на jQuery
&lt;script type=&quot;text/javascript&quot;&gt; $('#js-order').on(&quot;click&quot;,function(e){ // кликаем на кнопку отправки формы ...

jQuery - не срабатывает обработчик в change()
Вот код: var $packageDialog = $(&quot;#package-dialog&quot;); var $packageSelector = $(&quot;#package&quot;, $packageDialog); ...

JQuery.on для новых элементов не срабатывает
Здравствуйте. Объясните, пожалуйста, где я дурак и почему лыжи не едут. О задании (используется chosen, плагин jquery): &lt;ul...

JQuery!? Не могу понять почему цикл не срабатывает?
for (var b=1; b&lt;=1; b++) { $('#lab_'+b).click(function(){ $('#cng_'+b).attr(&quot;disabled&quot;,false); }); } вот если это без...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru