Вопросы по jQuery и Javascript
|
|
Apocalypse | Дата: Пятница, 27.06.14, 13:38:36 | Сообщение # 1 |
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
| Решаем вопросы по jQuery
|
|
| |
Al-Sher | Дата: Пятница, 18.07.14, 20:49:30 | Сообщение # 2 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Имею два кода Код function online(id) { $("#user_on").addClass("disabled"); $("#user_all").removeClass(); setInterval(function () {$.post('***',{id_vk:id}, function(t) { //var data = JSON.parse(t); $("#online").html(t); }); }, 100); } Код function user() { $("#user_all").addClass("disabled"); $("#user_on").removeClass(); $.post('/***', function (t) { $("#online").html(t); }); } как видно, оба они заменяют один и тот же блок. Вопрос таков: Как сделать так, чтобы при активации функции `user` SetInterval останавливался, а при обратном нажатии снова работал? Спасибо за внимание
|
|
| |
Defman | Дата: Пятница, 18.07.14, 21:09:21 | Сообщение # 3 |
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
| Код var t = setInterval(function() { alert(1) }, 5000); //Timer var enabled = 1; $("#button").click(function() { if(enabled == 1) { alert("disabled"); enabled = 0; clearInterval(t); } else { enabled = 1; alert("start"); t = setInterval(function() { alert(1) }, 5000); //Timer } }); Переделай под себя)
Сообщение отредактировал Defman - Пятница, 18.07.14, 21:10:13 |
|
| |
Al-Sher | Дата: Суббота, 19.07.14, 12:38:29 | Сообщение # 4 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Defman, ужас как пришлось поиздеваться над кодом, но за час я сделал это! :) спасибо)
|
|
| |
Al-Sher | Дата: Суббота, 19.07.14, 16:13:09 | Сообщение # 5 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Снова я :) надеюсь в этот раз последний вопрос :) В общем мне надо сделать автообновление чата, я конечно могу сравнивать HTML код страницы, но мне хочется сделать это более красиво и современнее, то есть новые сообщения добавлять выше старых, а не полностью переписывать чат. Пытался сделать проверку так Код function mess_chat (id) { $.post('mess_chat.php', {id:id}, function (t) { $("#"+id).before(t); }); } mess_chat.php Код if(isset($_POST["id"])) { $result = mysql_query("SELECT * FROM messages ORDER BY id DESC"); $myrow = mysql_fetch_array($result); if($_POST["id"] < $myrow['id']) { echo "<table id='".$myrow["id"]."' class='mess' cellspacing='0' cellpadding='0'><tr><td class='ava'><img src='".$myrow["photo"]."' title='".$myrow["name"]."' onclick='paste(\"".$myrow["id"]."\")' /></td><td class='text'>".$myrow["text"]."</td><td class='time'><div title='".$myrow["date"]."'></div></td></tr></table>"; } } else exit(); но новые сообщения не выводятся :( Подскажите пожалуйста хотя бы идеи, код я может сам как-нибудь напишу :) Всем спасибо :)
|
|
| |
Lisnes | Дата: Суббота, 19.07.14, 16:52:44 | Сообщение # 6 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| Al-Sher, а ответ с сервера приходит нормальный?
|
|
| |
Apocalypse | Дата: Суббота, 19.07.14, 18:44:04 | Сообщение # 7 |
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
| Al-Sher, вообще неправильно делаешь. Используй вот такой вариант:Код $.post('mess_chat.php', {id:id}, function(t) { $("#"+id, t).prependTo('#id_блока_c_сообщениями'); });
|
|
| |
Al-Sher | Дата: Суббота, 19.07.14, 19:38:32 | Сообщение # 8 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Apocalypse, не помогло, сообщение не вставилось(проверил приходит ли ответ с сервера через alert() и он мне вывел нужный код, который должен был вставиться) P.S. сейчас заметил, что первое сообщение без перерыва обновляется(это я заметил, так как в просмотре кода не смог его редактировать(сбрасывался), а так же аватарка не нажималась(проверял код вставки ника) у остальных сообщений всё было нормально)
Сообщение отредактировал Al-Sher - Суббота, 19.07.14, 19:49:08 |
|
| |
Lisnes | Дата: Суббота, 19.07.14, 19:53:50 | Сообщение # 9 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| Al-Sher, попробуй так:
Код var lastId = 0;
function mess_chat (id) { lastId = id; $.post('mess_chat.php', {id:id}, function (t) { $("#"+lastId).before(t); }); }
|
|
| |
Al-Sher | Дата: Суббота, 19.07.14, 20:00:14 | Сообщение # 10 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Lisnes, это уже лучше, но так он до бесконечности выводит это сообщение. Хотя я понял почему так происходит, осталось придумать как заменять id последнего сообщения в setInterval(mess_chat('<? echo $id_mess_myrowa;?>'), 100); Вопрос решил! :) всем большое спасибо :)
Сообщение отредактировал Al-Sher - Суббота, 19.07.14, 21:00:29 |
|
| |
Defman | Дата: Воскресенье, 20.07.14, 23:05:09 | Сообщение # 11 |
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
| Хех) В функцию mess_chat передавать $("table.mess:last").attr("id"). Вернет последний ID сообщения на странице.
|
|
| |
Defman | Дата: Воскресенье, 20.07.14, 23:14:25 | Сообщение # 12 |
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
| И в твоем случае $result = mysql_query("SELECT * FROM messages ORDER BY id DESC"); совершенно неправильный запрос (представь, что в твоем чате 60к сообщений...) $result = mysql_query("SELECT * FROM messages WHERE id > '$_POST[id]' ORDER BY id DESC"); вернет все НОВЫЕ сообщения, а не абсолютно все сообщения из чата. Тогда if($_POST["id"] < $myrow['id']) не нужен будет.
|
|
| |
Al-Sher | Дата: Понедельник, 21.07.14, 10:29:36 | Сообщение # 13 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Defman, не подумал, что он выводит все сообщения :( спасибо за помощь :)
|
|
| |
dimyan | Дата: Вторник, 05.08.14, 21:34:26 | Сообщение # 14 |
Рядовой
Группа: Пользователи
Сообщений: 1
Награды: 0
Репутация: 0
Замечания: 0%
Статус: Offline
| Нашёл классный скрипт на этом сайте http://www.apo-ucoz.com/load/3-1-0-1367 Скрипт классный, но не могу разобраться, как поставить его на ucoz например в новости, что нужно подставлять вместо "contentID", "asideID" ?
|
|
| |
Lisnes | Дата: Среда, 06.08.14, 15:07:15 | Сообщение # 15 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| dimyan, дай мне ссылку на свой сайт в ЛС и я расскажу что делать.
|
|
| |
pekky | Дата: Воскресенье, 05.10.14, 12:19:37 | Сообщение # 16 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Можно ли с помощью регулярных выражений, вытащить в переменую не число, а именно то что нашло регулярное выражение ?
Сообщение отредактировал pekky - Воскресенье, 05.10.14, 12:19:56 |
|
| |
Lisnes | Дата: Воскресенье, 05.10.14, 13:04:55 | Сообщение # 17 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| pekky, можно. Метод exec тебе в помощь
Сообщение отредактировал Lisnes - Воскресенье, 05.10.14, 13:05:57 |
|
| |
pekky | Дата: Воскресенье, 05.10.14, 13:06:00 | Сообщение # 18 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Lisnes, а как ?
|
|
| |
pekky | Дата: Воскресенье, 05.10.14, 13:30:32 | Сообщение # 19 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Lisnes, Можете пожайлуста расказать ?
|
|
| |
Lisnes | Дата: Воскресенье, 05.10.14, 13:52:48 | Сообщение # 20 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| pekky, Код var matches = /регулярка/.exec(text) . matches - массив совпадений text - текст, в котором производить поиск.
Сообщение отредактировал Lisnes - Воскресенье, 05.10.14, 13:56:17 |
|
| |
pekky | Дата: Воскресенье, 05.10.14, 15:14:56 | Сообщение # 21 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Lisnes, у меня выводит 0, может я не правельно понял, заместь text надо подставлять переменую в которой текст ? Ну у меня ни так ни так не получается
|
|
| |
Lisnes | Дата: Воскресенье, 05.10.14, 15:32:19 | Сообщение # 22 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| pekky, покажи код
|
|
| |
pekky | Дата: Воскресенье, 05.10.14, 16:09:47 | Сообщение # 23 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Код <div id="vod">test</div> <script> var text = "регулярка бла бла регулярка"; var regV = /регулярка/.exec(text); var result = text.search(regV); $('#vod').after(result); </script>
|
|
| |
Lisnes | Дата: Воскресенье, 05.10.14, 17:37:05 | Сообщение # 24 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| pekky, попробуй так: Код <div id="vod">test</div> <script> var text = "регулярка бла бла регулярка"; var regV = /регулярка/.exec(text); var result = text.search(regV[0]); $('#vod').after(result); </script>
|
|
| |
Al-Sher | Дата: Воскресенье, 05.10.14, 19:46:46 | Сообщение # 25 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Всем привет) Подскажите как можно решить несовместимость двух плагинов: prettyPhoto и audiojs? Проблема в том, что плагин prettyPhoto не дает вставить стили плагину audiojs, то есть стили не добавляются, а если их добавить вручную, то картинки из audiojs не появляются. Заранее спасибо :)
|
|
| |
pekky | Дата: Воскресенье, 05.10.14, 21:38:54 | Сообщение # 26 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Lisnes, Не получается
|
|
| |
Lisnes | Дата: Понедельник, 06.10.14, 09:36:21 | Сообщение # 27 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| pekky, я набросал функцию которая тебе все совпадения в массиве вернетКод function find(txt, reg){ var m = []; while((myArr = reg.exec(txt)) != null){ m.push(myArr); } return m; }
var a = find('регулярка бла бла бла регулярка', /регулярка/g); $("#vod").html(a.join(', '))
|
|
| |
Apocalypse | Дата: Понедельник, 06.10.14, 12:13:57 | Сообщение # 28 |
Подполковник
Группа: Администратор
Сообщений: 107
Награды: 1
Репутация: 11
Статус: Offline
| Al-Sher, покажи пример исходного кода участка с картинкой для претти и для аудио, чтобы можно было сравнить и понять, что требует первый, а что второй плагин
|
|
| |
Al-Sher | Дата: Понедельник, 06.10.14, 13:49:07 | Сообщение # 29 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Apocalypse, код для audiojs Код <audio src="/audio/Metallica%20-%20Nothing%20Else%20Matters%20%20(audiopoisk.com).mp3" preload="none" /> код для pretty Код <a href="http://cs622026.vk.me/v622026695/2622/9U-ShMCp8ZU.jpg" rel="prettyPhoto[pp_gal]"><img id="message_image-img" src="http://cs622026.vk.me/v622026695/2622/9U-ShMCp8ZU.jpg" width="50px" /></a> первый плагин преобразует код выше в Код <div class="play-pause"> <p class="play"></p> <p class="pause"></p> <p class="loading"></p> <p class="error"></p> </div> и добавляет к нему стили(вернее должен добавлять, но не делает этого) Второй код не преобразует без нажатия на ссылку с rel "prettyPhoto"
Сообщение отредактировал Al-Sher - Понедельник, 06.10.14, 13:50:06 |
|
| |
Lisnes | Дата: Понедельник, 06.10.14, 20:47:11 | Сообщение # 30 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| Al-Sher, дай ссылку на страницу где скрипты стоят, проще будет определить в чем беда.
|
|
| |
pekky | Дата: Понедельник, 06.10.14, 21:53:24 | Сообщение # 31 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Lisnes, Спасибо огромное)) все работает)) А не знаешь, можно ли найти с помощью регулярных выражений список цифр? Проблема в том что я не знаю сколько их может быть например от 1-5 цифр, как написать такое выражение ?
|
|
| |
Lisnes | Дата: Понедельник, 06.10.14, 21:57:54 | Сообщение # 32 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| pekky, я не силен в регулярках, может что-то типо:
|
|
| |
pekky | Дата: Понедельник, 06.10.14, 22:14:23 | Сообщение # 33 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Lisnes, у меня после такой записи страница перестала грузится :D
|
|
| |
Lisnes | Дата: Понедельник, 06.10.14, 22:16:42 | Сообщение # 34 |
Подполковник
Группа: VIP
Сообщений: 116
Награды: 3
Репутация: 17
Замечания: 0%
Статус: Offline
| pekky, я же сказал что не силен в этом :D
|
|
| |
pekky | Дата: Понедельник, 06.10.14, 22:18:35 | Сообщение # 35 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Lisnes, создам тему, может кто то знает)
|
|
| |
Al-Sher | Дата: Воскресенье, 12.10.14, 14:10:18 | Сообщение # 36 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Делал я анимацию, делал и в итоге заметил, что див не меняет значение display, подскажите где ошибка :) Код $(".block").animate({display: "block", opacity: 1, top: "7px"},500); все остальные стили он меняет нормально
|
|
| |
Арман | Дата: Воскресенье, 12.10.14, 14:33:57 | Сообщение # 37 |
Лейтенант
Группа: Модератор
Сообщений: 47
Награды: 1
Репутация: 3
Замечания: 0%
Статус: Offline
| Al-Sher, вероятнее всего или меняет другой скрипт обратно или родитель жертвует так, что менять нельзя. Если бы возникало ошибка я думал другие следующие за ним не менялись бы, значит он таки меняет его, но что-то или запрещает или меняет обратно.
Маленькое предположение, при событиях (например при mouseout) родитель перерисовывается, и все его стили заново приписывается его наследникам и дисплей меняется обратно.
|
|
| |
Al-Sher | Дата: Воскресенье, 12.10.14, 14:36:52 | Сообщение # 38 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Арман, я это проверял и добавил в тот скрипт, перед анимацией, код Код $(".block").css("display", "block"); он работает стабильно и меняет, но с ним исчезает анимация исчезновения, так как он срабатывает быстрее анимации
|
|
| |
Defman | Дата: Воскресенье, 12.10.14, 20:44:46 | Сообщение # 39 |
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
| Эмм, а как ты себе представляешь анимацию смены система отображения div'a? Если тебе надо скрыть/показать блок после анимации, то у animate есть возможность каллбек функции при завершении анимации... Код $(".block").animate({opacity: 1, top: "7px"},500, function() { $(this).css("display", "block") }); Вообще не понятно, что ты хочешь)
Сообщение отредактировал Defman - Воскресенье, 12.10.14, 20:45:03 |
|
| |
Al-Sher | Дата: Воскресенье, 12.10.14, 20:56:55 | Сообщение # 40 |
Лейтенант
Группа: VIP
Сообщений: 71
Награды: 0
Репутация: 1
Замечания: 0%
Статус: Offline
| Defman, это помогло :) спасибо, не знал про каллбек функции :)
|
|
| |
RuD | Дата: Среда, 15.10.14, 00:14:18 | Сообщение # 41 |
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
| Уважаемые. Стоит такая задача: Превратить содержимое div-блока в картинку и предложить пользователю скачать её.
Код <!DOCTYPE html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" />
<style type="text/css"> div { width:200px; background-color: green; } </style>
<script type="text/javascript" src="http://r2drevo.tk/html2canvas.js"></script> <script src="http://code.jquery.com/jquery-1.9.1.min.js"></script> </head> <body> <div id="downimg"> <div> some text </div> </div>
<script language="javascript"> function downimg(){ html2canvas($('#downimg'), { onrendered: function (canvas) { var img = canvas.toDataURL('image/png').replace("image/png", "image/octet-stream");
window.location.href = img; } }); } </script>
<a href="javascript:void(0)" onClick="downimg()" >SAVE</a> </body> </html>
Казалось бы, проблема решена. Но, изображение скачивается без расширения и даже без имени. Есть ли какой-либо способы? атрибут
демо: http://jsfiddle.net/656uqge7/
|
|
| |
Defman | Дата: Среда, 15.10.14, 00:31:03 | Сообщение # 42 |
Майор
Группа: VIP
Сообщений: 91
Награды: 1
Репутация: 5
Замечания: 0%
Статус: Offline
| У меня он скачивается в base64...
|
|
| |
RuD | Дата: Среда, 15.10.14, 01:02:02 | Сообщение # 43 |
Лейтенант
Группа: Чатер
Сообщений: 54
Награды: 0
Репутация: 0
Замечания: 20%
Статус: Offline
| Defman, согласен, но он открывается с помощью: генерится на лету и транслируется в base64, а как можно решить эту проблему?
|
|
| |
pekky | Дата: Пятница, 24.10.14, 14:47:38 | Сообщение # 44 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| Ребят почему не работает код ? Код <div id="pusk">Пуск</div><script> $('#pusk').click(function() { $('#pusk').after('<div id="pods">кнопка</div>'); }); $('#pods').click(function() { alert("test") });</script> По сути при клике на "кнопка" должна сработать функция и вылететь алерт, но не получается почему то
|
|
| |
TestUser | Дата: Пятница, 24.10.14, 15:29:47 | Сообщение # 45 |
Рядовой
Группа: Чатер
Сообщений: 15
Награды: 0
Репутация: 2
Замечания: 0%
Статус: Offline
| pekky, Вот так должно заработать Код $('#pusk').click(function() { $('#pusk').after('<div id="pods">кнопка</div>'); $('#pods').click(function() { alert('test'); }); });
|
|
| |
Арман | Дата: Пятница, 24.10.14, 15:42:04 | Сообщение # 46 |
Лейтенант
Группа: Модератор
Сообщений: 47
Награды: 1
Репутация: 3
Замечания: 0%
Статус: Offline
| TestUser, Java Scripts, такой пробел? Я даже представить не могу какой другой смысл может иметь этот вопрос...
|
|
| |
TestUser | Дата: Пятница, 24.10.14, 15:44:40 | Сообщение # 47 |
Рядовой
Группа: Чатер
Сообщений: 15
Награды: 0
Репутация: 2
Замечания: 0%
Статус: Offline
| Арман, Код document.getElementById('div2').classList.toggle('animated(тут пробел)hinge')
Сообщение отредактировал TestUser - Пятница, 24.10.14, 15:45:14 |
|
| |
pekky | Дата: Пятница, 24.10.14, 15:44:49 | Сообщение # 48 |
Лейтенант
Группа: Пользователи
Сообщений: 65
Награды: 1
Репутация: 0
Замечания: 0%
Статус: Offline
| TestUser, Спасибо, помогло ))
|
|
| |
Арман | Дата: Пятница, 24.10.14, 16:06:50 | Сообщение # 49 |
Лейтенант
Группа: Модератор
Сообщений: 47
Награды: 1
Репутация: 3
Замечания: 0%
Статус: Offline
| TestUser, в Javascript-е пробел и есть пробел ' ', если команда toggle не находит 'animated hinge' с пробелом, то вероятнее всего проблема в classList-е, там название сохранено НЕ как 'animated(ПРОБЕЛ)hinge', иначе бы заработало.
|
|
| |
Арман | Дата: Пятница, 24.10.14, 18:45:17 | Сообщение # 50 |
Лейтенант
Группа: Модератор
Сообщений: 47
Награды: 1
Репутация: 3
Замечания: 0%
Статус: Offline
| TestUser, в названии класса не может быть пробел, если ты создаешь, Код <div class="class name"> </div> то к этому диву привязываются 2 класса, class и name.
|
|
| |