[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Форум » Главный раздел » Помощь по Сайтостроению » Вопросы по jQuery и Javascript
Вопросы по 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, я не силен в регулярках, может что-то типо:
Код
/[0-9]*/g
 
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.
 
Форум » Главный раздел » Помощь по Сайтостроению » Вопросы по jQuery и Javascript
  • Страница 1 из 3
  • 1
  • 2
  • 3
  • »
Поиск: