Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 28.09.2011, 16:12
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

1. в книжке такое не возбранялось
2. в контексте примера это безразницы
3. в контексте примера работает как нужно
Ответить с цитированием
  #12 (permalink)  
Старый 28.09.2011, 16:23
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Триви, в свете последнего прочитаного, можно вообще вместо

.toggleClass('on')


использовать
http://jquery-docs.ru/effects/toggle/
Ответить с цитированием
  #13 (permalink)  
Старый 28.09.2011, 16:57
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Сообщение от ksa Посмотреть сообщение
(function() {
$(document).ready(function (){
$('a.no_text').click(function (){
$(this).next('p').toggleClass('on')
})
})
$(document).ready(function (){
$('a.no_text_all').click(function (){
$(this).nextAll('p').toggleClass('on')
})
})
})();
Сдаётся мне, this тут ни к чему...

Последний раз редактировалось Nanto, 28.09.2011 в 16:59.
Ответить с цитированием
  #14 (permalink)  
Старый 28.09.2011, 17:01
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,123

Сообщение от Nanto
Сдаётся мне, this тут ни к чему...
Вообще-то это элемент ДОМ. А раз так - к нему не применимы методы ЖиКвери...
Так вот конструкция

$(this)


это уже элемент ЖиКвери и к нему можно применять нужные методы.

P.S.
Но что мешает убрать и попробовать!
Ответить с цитированием
  #15 (permalink)  
Старый 28.09.2011, 17:14
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Это я к тому, что во второй части скрипта Вы вроде показываете все абзацы, так? Тогда причём тут указание на элемент DOM, вызвавший функцию (this)? Он просто присвоит всем соседним (по отношению к a.no_text_all) абзацам класс on... А надо по отношению ко всем ссылкам a.no_text.
P.S. Уж сменить класс всем <p> разом, я, конечно, смогу!
Ответить с цитированием
  #16 (permalink)  
Старый 28.09.2011, 17:17
Профессор
Отправить личное сообщение для Триви Посмотреть профиль Найти все сообщения от Триви
 
Регистрация: 23.04.2010
Сообщений: 354

Сообщение от ksa Посмотреть сообщение
Триви, в свете последнего прочитаного, можно вообще вместо

.toggleClass('on')


использовать
http://jquery-docs.ru/effects/toggle/
Это всё равно не решает п.3
Ладно, лучше поясню с помощью кода.
Поскольку автор хотел JS чистяком, то вот:

<a href="#" id="sh">Открыть все</a><hr />
<a href="#" class="no_text">Бла-бла1</a><p class="new_text" style="display:none">1-бла...</p>
<a href="#" class="no_text">Бла-бла2</a><p class="new_text" style="display:none">2-бла...</p>
<a href="#" class="no_text">Бла-бла3</a><p class="new_text" style="display:none">3-бла...</p>

<script type='text/javascript'>
(function() {
  var aArr = document.getElementsByTagName('A');
  for (var i=0; i<aArr.length; i++)  {
    aArr[i].onclick = function() {
        var p = this.nextSibling,
            vis = p.style.display;
        p.style.display = (vis=='none') ? 'block' : 'none';
    }
  }
  sh.onclick = function () {
    var vis;
    if(this.innerHTML=='Открыть все') {
      vis = 'block', this.innerHTML='Закрыть все';
    } else {
      vis = 'none', this.innerHTML='Открыть все';
    }
    var pArr = document.getElementsByTagName('P');
    for (var i=0; i<pArr.length; i++) {
      pArr[i].style.display = vis;
    }
  }
})();
</script>
Ответить с цитированием
  #17 (permalink)  
Старый 28.09.2011, 17:23
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

ksa, кстати, а что это за конструкция такая?
.new_text.on {
display:block;
}
В смысле «.on» - чьих будет? JS, jQuery, CSS? Просто впервые встречаю... И что это означает навешивается подкласс или это новый класс получается? Или это сугубо жикверивская "примочка"? И поймёт ли её браузер с отключенным js?
Ответить с цитированием
  #18 (permalink)  
Старый 28.09.2011, 17:26
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

Триви,
Спасибо большое, но прекратите все надо мной издеваться!
Я размышлял-размышлял, плюнул на всё и решил подключить jQuery, начал по новой перелопачивать более ранние скрипты (чтобы перевести их на jQ), а тут Вы снова выдаёте на чистом js...
Ответить с цитированием
  #19 (permalink)  
Старый 28.09.2011, 20:30
Аватар для yashka525
Mr. Jacob
Отправить личное сообщение для yashka525 Посмотреть профиль Найти все сообщения от yashka525
 
Регистрация: 20.01.2011
Сообщений: 194

Сообщение от Nanto
а тут Вы снова выдаёте на чистом js
Правильно делает! Native JS rules!!
Ответить с цитированием
  #20 (permalink)  
Старый 28.09.2011, 22:36
Профессор
Отправить личное сообщение для Nanto Посмотреть профиль Найти все сообщения от Nanto
 
Регистрация: 21.12.2010
Сообщений: 243

yashka525,
Из-за 100кБ фреймворка? Или просто из-за понтов? Дык ради крути можно и на ассемблере писать, можно вообще в двоичной системе машинный код фигачить. Native code rules!!
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Можно ли средствами JS узнать высоту скрытого элемента? ацкий Общие вопросы Javascript 7 24.08.2011 19:07
Получение значения соседнего элемента Max Tretyakov Events/DOM/Window 2 27.06.2011 22:01
Можно ли изменить адресную строку без перезагрузки страницы (не якорь) Papa Общие вопросы Javascript 2 08.05.2010 03:45
Как можно изменить URL в адресной строке браузера? балерун Events/DOM/Window 12 17.11.2009 13:08
Можно ли менять свойство NAME элемента? MaxTula Элементы интерфейса 6 09.02.2009 11:55