JavaScript & jQuery
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Чтобы не создавать отдельные темы с проблемой в JavaScript, решил создать тему с вопросами по jS и jQ. Задаем вопросы… Ссылки для обучения JS: 1. Центральный Javascript-ресурс 2. Учебники JavaScript 3. Уроки JavaScript 4. Справочник JavaScript 5. JavaScript tutorials 6. Плагины для jQuery 7. Учим JavaScript 8. Интересные решения на JS Конечно, если я какие-нибудь ссылки пропустил, оповестите меня, и я добавлю эти ссылки.
UPD Стандарт экма на русском: http://javascript.ru/ecma
Очень важная тема! Filmzona — онлайн фильмы .
Hammer
Группа: Пользователи
Пользователь №: 2965
Сообщений: 9
Quote (Aleko )
прочитать информацию о языке системы и браузера
Именно так и делал, но гугл так и не могут доработать хром до конца.
Raiderr
Группа: Проверенные
Пользователь №: 673
Сообщений: 349
Получено оценок: 26
вот код картинки, если она загружена - её видно, если не загружена - не видно: Code
<img src="img.jpg" style="display:none" onload="this.style.display='inline'">
У меня есть скрипт, который при клаце заменяет src в этом изображении. Я хочу, чтобы при клаце, при изменении scr, стиль изображения опять становился display:none, и опять при онлоаде делалось this.style.display='inline'. Как это сделать?
Новый кавер Jar of Hearts: http://www.youtube.com/watch?v=OLkXQMHVRhI
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
$THREAD_TITLE$ $THREAD_URL$ $LAST_POST_URL$ $FORUM$ $FORUM_URL$ $NUMBER$
Почему эти условные коды не работают везде кроме информеров?Очень важная тема! Filmzona — онлайн фильмы .
chu4___x
говорун
Группа: Проверенные
Пользователь №: 13
Сообщений: 211
Получено оценок: 19
Потому что эти коды из информеров «POST данные для модулей системы »
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
chu4___x , Как тогда мне в шаблоне их использовать? Или есть альтернатива? Есть код $FORUM_TITLE$, он через дефис пишет название раздела, форума, темы. Как обрезать, не используя js?Очень важная тема! Filmzona — онлайн фильмы .
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Code
<span id='f'>» <script>var f='$FORUM_TITLE$';f=f.split('-')[2];document.write(f)</script></span> <span id='n'>» <script>var n='$FORUM_TITLE$';n=n.split('-')[1];document.write(n)</script></span> <span id='t'>» <script>var t='$FORUM_TITLE$';t=t.split('-')[0];document.write(t)</script></span>
Так сделал, но мне еще и ссылки нужны.Очень важная тема! Filmzona — онлайн фильмы .
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
И без использования js желательно. Очень важная тема! Filmzona — онлайн фильмы .
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot , хм.
Code
<script> var f='$FORUM_TITLE$';f=f.split('-')[2];document.write(f) // а почему не так: document.write('$FORUM_TITLE$'.split('-')[2]) </script>
Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko , тьфу, точно А на условках никак?Очень важная тема! Filmzona — онлайн фильмы .
Infamous
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Quote (UnderShot )
<span id='f '>» <script>var f
Error в IE6, если не ошибаюсь.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Quote (Infamous )
Error в IE6
В следующий раз буду помнить. Лучше скажи, Quote (UnderShot )
А на условках никак?
Очень важная тема! Filmzona — онлайн фильмы .
Infamous
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Code
<?substr($FORUM_TITLE$, 0, strpos($FORUM_TITLE$, '-'))?>
Для названия темы. А для всего остального — не знаю.
uWeb
Группа: Проверенные
Пользователь №: 11
Сообщений: 29
Получено оценок: 3
Infamous , про "-" в названии темы забыл?
Infamous
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Забил.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
uWeb , можешь привести полный рабочий код?Очень важная тема! Filmzona — онлайн фильмы .
WRC
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
Code
<script> str=g[1]+'|'+g[2]+'|'+g[3]+'|'+g[4]+'|'+g[5];//и тд </script>
а как эт сократить Устраняем баг при просмотре материала
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
как вариант: Code
for(i=1;i<g.length;i++){ str=g[i]+'|' }
aka Latro
WRC
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
DSC , а в строке именно через какую нить функцию можно? думал join подойдёт... но эт совсем другое кста... то что ты дал не правильно... нужно так: Code
g=[1,2,3,4,5],str=''; for (i=0;i<g.length;i++) { str+=g[i]+'|' }
но эт не то... да и строчка получится 1|2|3|4|5| последняя палочка не нужна...Устраняем баг при просмотре материала Сообщение отредактировал WRC - Вторник, 18.05.2010, 15:51
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
WRC , гхм Code
<script> str = g.join('|') </script>
Бесплатные обои.
WRC
Группа: Проверенные
Пользователь №: 223
Сообщений: 149
Получено оценок: 11
блин... вроде так же делал и ошибку выдавало... ну на этом спасиб за ответ на очередной туповатый вопрос Устраняем баг при просмотре материала
Infamous
Группа: Проверенные
Пользователь №: 316
Сообщений: 158
Получено оценок: 21
Почему в IE не работает хинт?
Code
(function () { var nodes = document.getElementsByTagName('a'), boofer = null; for (var i = 0; i < nodes.length; i++) { if (nodes[i].title) { nodes[i].onmouseover = function (e) { boofer = this.title, this.title = ''; e = e || window.event; var elem = document.createElement('div'); elem.setAttribute('style', 'color: #fff; position: absolute; background: #555; border: 1px solid black; opacity: 0.8; top:' + (e.pageY + 10) + '; left:' + e.pageX); elem.id = 'hint'; elem.innerHTML = boofer; document.body.appendChild(elem); this.onmousemove = function (ev) { ev = ev || window.event; _hint = document.getElementById('hint'); _hint.style.top = ev.pageY + 10; _hint.style.left = ev.pageX + 10; } } nodes[i].onmouseout = function () { _hint = document.getElementById('hint'); this.title = boofer, this.onmousemove = null; _hint.parentNode.removeChild(_hint); } } } })();
Вообще ничего не выводит.
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Infamous , скорее всего потому что там нет свойства window.event.pageX/YБесплатные обои.
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Quote (Infamous )
document.getElementsByTagName('a')
document.linksБесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko , а че, ie6 не может обращаться по тегу?Очень важная тема! Filmzona — онлайн фильмы .
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot , может, это я просто к тому что так удобнее.Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko , для одного сайта с гонками:Code
<script> function go(){var typefocus=document.getElementById('typetext'),input=document.getElementById('inputtext'),spans=typefocus.getElementsByTagName('span'); for(var i=0;i<spans.length;i++){if(spans[i].style.display!=='none'){input.value=spans[i].innerText;change(document.getElementById('inputtext'))}}} document.getElementById('inputtext').onkeyup=go; </script>
Как сделать, чтобы при одном onkeyup скрипт брал один символ из нужных спанов, при 2-м нажатии — 2 символа, и.т.д.? + еще проблемы при вызове функциюю change() на 3-й строке, может ее надо вызывать не в цикле?
Очень важная тема! Filmzona — онлайн фильмы .
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
UnderShot , если я правильно понял, о чем ты, то я делал проще: берем подстановку из массива. Рецепт: вставляем скриптик в адресную строку и ждем начала гонки. Как только гонка началась переводим фокус в адресную строку (он слетает), выполняем скрипт и тупо лупим по всем клавишам пока не забъем весь текст. Не важно, какие клавиши нажимать. В конце обязательно нужно нажать enter. Клавиши нельзя зажимать и держать - там где то отлов этого стоит.
Code
javascript:(function(d){var a=(function(a,c,d){c=a.getElementsByTagName('span'),d=c.length;while(d--){c[d].innerHTML=c[d].style.display=='none'?'':c[d].innerHTML}return a.textContent.replace(/c/g,'с').replace(/a/g,'а').replace(/o/g,'о').replace(/p/g,'р').split('')})(document.getElementById('typetext')),b=0;d.onkeypress=function(e){if(a[b])e.preventDefault(),d.getElementById('inputtext').value+=a[b++]}})(document)
Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko , а зачемCode
return a.textContent.replace(/c/g, 'с').replace(/a/g, 'а').replace(/o/g, 'о').replace(/p/g, 'р').split('')
? Как я понял он похожие буквы с латиницы переводит в кириллицу? Но зачем? + чем отличается innerText от textContent ?
Очень важная тема! Filmzona — онлайн фильмы .
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Зачем - понятно. Система ждет от нас ввода русских символов а показывает нам английские - это ещё одна уловка против взлома. innerText от textContent отличается поддержкой. innerText для ie а textcContent для w3c. Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Как обратиться к 1-му по счету классу? Так-же как и :first Code
<script> var a=document.all||document.getElementsByTagName('*'),i=a.length; while(i--) if(a[i].className=='newscont') alert(a[[i][0]].innerText) </script>
В моем варианте выводит innerText всех элементов с классом .newscont , а я хочу чтоб выводился 1-й. Очень важная тема! Filmzona — онлайн фильмы .
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Code
<script> var a=document.all||document.getElementsByTagName('*'),i=a.length; while(i--) if(a[i].className=='newscont') alert(a[[i][0]].innerText),break; </script>
Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko , помоги с функцией? Хочу написать рассортировку списков li, по нарастанию. Code
<ul> <li data-id='238'><a href='#238'>Название</a><strong>541</strong></li> … </ul>
Именно со strong`а нужно брать числа, и расфасовывать li-шки по нарастанию. Вот немного набросал, но не совсем то:Code
javascript: (function () { var i, ul = document.getElementsByTagName('ul')[4], a = ul.getElementsByTagName('li'), m = []; for (i=0;i<a.length;i++) { m.push(a[i].getAttribute('data-id')); ul.innerHTML='<li data-id="'+m[i]+'"><a href="#'+m[i]+'">'+a[i].innerText+'</a></li>'; }; } ())
Выводит только первый li.Очень важная тема! Filmzona — онлайн фильмы .
GRAF-8269
молчун
Группа: Проверенные
Пользователь №: 3063
Сообщений: 24
ничего не понял с http://www.studioad.ru/?prices дайте код для вставки, пожалуйста... Всё о продуктах и услугах МоскомПриватБанка
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
GRAF-8269 , какой код? Какой вставки?Очень важная тема! Filmzona — онлайн фильмы .
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
Quote (UnderShot )
Aleko, помоги с функцией?
Code
<html> <body> <ul> <li data-id='238'><a href='#238'>Name</a><strong>7</strong></li> <li data-id='238'><a href='#238'>Name</a><strong>5</strong></li> <li data-id='238'><a href='#238'>Name</a><strong>8</strong></li> <li data-id='238'><a href='#238'>Name</a><strong>3</strong></li> <li data-id='238'><a href='#238'>Name</a><strong>4</strong></li> <li data-id='238'><a href='#238'>Name</a><strong>1</strong></li> <li data-id='238'><a href='#238'>Name</a><strong>6</strong></li> <li data-id='238'><a href='#238'>Name</a><strong>2</strong></li> </ul> <script> function sortUl(ul){ var doc = document.createDocumentFragment(); lim = [], lis = doc.appendChild(ul.cloneNode(1)).childNodes; for(var key in lis){if(lis[key].tagName=='LI')lim.push(lis[key])} lim.sort(function(a,b){ var c=a.getElementsByTagName('strong')[0].innerHTML-b.getElementsByTagName('strong')[0].innerHTML; if(c>0)doc.firstChild.insertBefore(b,a); return c}); with(ul.parentNode)insertBefore(doc,ul),removeChild(ul); } sortUl(document.getElementsByTagName('ul')[0]); </script> </body> </html>
Бесплатные обои.
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
Aleko , спасибо работает, как сделать, чтобы он сортировал в обратном порядке?Очень важная тема! Filmzona — онлайн фильмы .
Raiderr
Группа: Проверенные
Пользователь №: 673
Сообщений: 349
Получено оценок: 26
UnderShot , Code
<script> function sortUl(ul){ var doc = document.createDocumentFragment(); lim = [], lis = doc.appendChild(ul.cloneNode(1)).childNodes; for(var key in lis){if(lis[key].tagName=='LI')lim.push(lis[key])} lim.sort(function(b,a){ var c=a.getElementsByTagName('strong')[0].innerHTML-b.getElementsByTagName('strong')[0].innerHTML; if(c>0)doc.firstChild.insertBefore(a,b); return c}); with(ul.parentNode)insertBefore(doc,ul),removeChild(ul); } sortUl(document.getElementsByTagName('ul')[0]); </script>
Новый кавер Jar of Hearts: http://www.youtube.com/watch?v=OLkXQMHVRhI Сообщение отредактировал Raiderr - Вторник, 22.06.2010, 19:31
GRAF-8269
молчун
Группа: Проверенные
Пользователь №: 3063
Сообщений: 24
UnderShot , ну чтобы ссылка работала....... Всё о продуктах и услугах МоскомПриватБанка
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
GRAF-8269 , Code
if(location.search=='?prices') alert(true)
Очень важная тема! Filmzona — онлайн фильмы .
MrOizo
говорун
Группа: Проверенные
Пользователь №: 42
Сообщений: 188
Получено оценок: 6
Вопрос: Как сделать оценку поста? Мне нужно сделать оценку поста также как реализована оценка комментариев в стандартных uCoz шаблонах, т.е. в виде рук. И чтобы вёлся подсчет хороших и плохих оценок. Вот приблизительно то, что я хочу.
Заранее премного благодарен, за любую помощь. Ну и соответственно, чтобы можно было легко менять руки на слова типа Да/Нет
Сообщение отредактировал MrOizo - Четверг, 24.06.2010, 11:00
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
MrOizo , Code
var ratePost={i:function(b,c){$.get("/blog/0-0-"+c+"-"+b+"-14-1",function(a){$(a).text().match(/засчитана/gi)?alert("Оценка засчитана!"):alert("Ошибка! "+$(a).text().match(/[А-я]+/gi))})}};
Вызывать:Code
ratePost.i($ID_МАТЕРИАЛА$,ЧИСЛО_ОЦЕНКИ); // числа оценки от 1 до 5-и
Вызывать без кавычек. Небольшой пример (из блога):
Code
<a href='javascript://' onclick='ratePost.i($ID$,5)'>↑</a> <span id='rated$ID$'>$RATING$</span> <a href='javascript://' onclick='ratePost.i($ID$,2)'>↓</a>
Очень важная тема! Filmzona — онлайн фильмы .
MrOizo
говорун
Группа: Проверенные
Пользователь №: 42
Сообщений: 188
Получено оценок: 6
UnderShot , спасибо конечто, но не совсем то что я ожидал. Я хотел чтобы не выводилась оценда 5 или 0, а подсчитывалось количество проголосовавших. Т.е. нажали 10 человек на да, а 3 на нет. То соответственно должно выглядеть так 10/3 Но и на этом спасибоСообщение отредактировал MrOizo - Пятница, 25.06.2010, 08:47
UnderShot
Группа: Модераторы
Пользователь №: 45
Сообщений: 923
Получено оценок: 85
MrOizo , не понял сначала, скоро напишу.Очень важная тема! Filmzona — онлайн фильмы .
MrOizo
говорун
Группа: Проверенные
Пользователь №: 42
Сообщений: 188
Получено оценок: 6
Quote (UnderShot )
MrOizo, не понял сначала, скоро напишу.
спасибо буду ждать.
MrOizo
говорун
Группа: Проверенные
Пользователь №: 42
Сообщений: 188
Получено оценок: 6
ZzzzzZzzz... Жду...
GlebLozhkovoy
говорун
Группа: Проверенные
Пользователь №: 255
Сообщений: 116
Есть "кнопка". Code
<a class="gotogoogle" href="www.google.com"></a>
её href - всегда динамический. Как найти её href, ну и перейти по нему.
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
GlebLozhkovoy Code
<script> (function(O,o){for(o in O)O[o].className=='gotogoogle'&&(location=O[o])})(document.links) </script>
Бесплатные обои.
GlebLozhkovoy
говорун
Группа: Проверенные
Пользователь №: 255
Сообщений: 116
Aleko , как всегда, ты - мой герой а можно проверить, если на странице есть опр.див т.е. на странице присутствует: <div id="ld"> </di... тогда выполняем выше написанное)
DSC
Группа: Проверенные
Пользователь №: 127
Сообщений: 516
Получено оценок: 41
GlebLozhkovoy :Code
(function(O,i){if(document.getElementById(i))for(o in O)O[o].className=='gotogoogle'&&(location=O[o])})(document.links,'твой id')
aka Latro
Aleko
Watching you
Группа: Администраторы
Пользователь №: 2
Сообщений: 1621
Получено оценок: 167
DSC , только вот так, иначе o становится глобалкой: Code
<script> with(document)(function(O,o){if(getElementById(o))for(o in O)O[o].className=='gotogoogle'&&(location=O[o])})(links,'твой id'); </script>
Бесплатные обои.