Ответить

Напишите ваше сообщение и нажмите отправить
Свойства

Вернуться назад

Обзор темы (новые сверху)

TLENS
2016.01.07 09:52

Решил написать функцию которая асинхронно будет подгружать спрайты, DOM, и еще пару вещей а по завершению выполнить один калбек. Но блин столкнулся с такой нелепой проблемой аж смешно
Никак не могу закинуть в асинхронную функцию число итератор из цыкла

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
this.async = function (fns, callback) {
var countFunction = 0
for (var k in fns) {
countFunction ++;
var i = k;
fns[k].fn(function (result) {
var j = k;
console.log(j, i, k);
fns[j].callback(result);
if (--countFunction < 1) {
callback();
}
});
}
}

в результате i, j, k равно одному и тому же
Когда то уже сталкивался с таким но вроде как то так решал эту задачу а сейчас не врубаюсь
Добавлено спустя   4 минуты  59 секунд:
Стоило только написать здесь как пришла еще одна мысль обернуть тело цыкла и на ура сработало. Блин долбил эту функцию более часа)

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
this.async = function (fns, callback) {
var countFunction = 0
for (var k in fns) {
(function () {
countFunction ++;
var i = k;
fns[k].fn(function (result) {
console.log(i);
fns[i].callback(result);
if (--countFunction < 1) {
callback();
}
});
})();
}
}
TLENS
2015.10.06 07:51

despod мда, обьяснил. Я например ничего не понял.
Покажи код

despod
2015.09.26 15:25

Вот если например в одном файле пхп код в другом аякс работает норм,  а вот в одном файле все вместе не работает

Gemorroj
2015.09.26 15:08

через ajax

despod
2015.09.26 09:21

как можно обновить страницу без перезагрузки , чтобы jquery и php код были на одной странице?

Gemorroj
2015.08.22 09:19

fadeOut скрыл твой элемент $("#errors"). соответственно тебе его нужно заново сделать видимым. Например, через fadeIn.

Код:

1
$("#errors").html('error').fadeIn(400).delay(5000).fadeOut("slow");
despod
2015.08.22 08:51

только теперь другая проблема
выводит норм только один раз
только я оповещаю о добавлении сообщения

Код:

1
$("#No_errors").html(data).delay(5000).fadeOut("slow");

пишу онлайн чат без перезагрузки вот полный код js

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
///запись в бд
$("input[type='submit']").click(function() {
var mess = $("#pole").serialize();
$.ajax({
type: "POST",
url: "post.php?total=add",
cache: false,
data: mess,
success: function(data) {
if(data == 1 || data == 0){
$("#errors").html('<span style="background-color:red; color:#000000; border: 1px solid #800000; padding:3px 4px 3px 5px; ">Сообщение не должно мене 3х символов или быть бустым</span>');
} else if(data == 2){
$("#errors").html('<span style="background-color:red; color:#000000; border: 1px solid #800000; padding:3px 4px 3px 5px; ">Сообщение не должно привышать более 300 символов</span>');
}else{
$("#No_errors").html(data).delay(5000).fadeOut("slow");
$("#pole").val('');
}
},
error: function(xhr, str){
alert("Возникла ошибка!");
}
});
});
});
////////обновление чата
setInterval(function(){
$.ajax({
type: "GET",
url: "post.php?total=item",
cache: false,
dataType : "text",
success: function(data) {
$(".blok_content").html(data);
},
error: function(xhr, str){
alert("Возникла ошибка!");
}
});
}, 200);

при успешном добавлении вылазеет сообщение что успешно отправлено
но когда я пишу повторно сообщение не вылазеет почему то вот сам пхп

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
function sql_insert($db,$zapros,$param){
//$sql = "INSERT INTO product (product_name) OUTPUT INSERTED.product_id VALUES (?)";
$sth = $db->prepare($zapros);
$sth->execute($param);
return $sth;
}
function sql($db, $sql){
$addprepare = $db -> query($sql);
return $addprepare;
}
$time = time();
$printText = isset($_POST['printText']) ? mysql_real_escape_string(trim($_POST['printText'])) : '';
 
$c = sql($db,"DELETE FROM `online_cht` WHERE `time` < ".($time - 600)."");
 
switch(isset($_GET['total']) ? trim($_GET['total']) : ''){
case 'item':
$x = sql($db,"SELECT * FROM `online_cht` ORDER BY time DESC");
if($x->rowCount() == 0){
echo 'Сообщений в базе нет';
}else{
while($r = $x->fetch(PDO::FETCH_ASSOC)) {
echo $r["name"].' '.$r['message']."<br/>";
}
}
break;
case 'add':
if($printText == ''){
echo 0;
}else {
if(mb_strlen($printText,'UTF-8')<3){
echo 1;
}else if(mb_strlen($printText,'UTF-8') > 300){
echo 2;
}else{
if(sql_insert($db,"INSERT INTO `online_cht` (id,name,message,time) VALUES (?,?,?,?)",array('1','test',$printText,$time))){
echo 'Сообщение успешно добавлено';
unset($printText);
}
}
}
break;
}
Gemorroj
2015.08.21 09:55

у jquery есть функция delay.
в твоем случае, как-то так.

Код:

1
$("#errors").html('error').delay(5000).fadeOut("slow");
despod
2015.08.21 08:39

Доброго времени суток!

есть некий код

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
$("input[type='submit']").click(function() {
var mess = $("#pole").serialize();
$.ajax({
type: "POST",
url: "post.php?total=add",
cache: false,
data: mess,
success: function(data) {
if(data == 1 || data == 0){
$("#errors").html('<span style="background-color:red; color:#000000; border: 1px solid #800000; padding:3px 4px 3px 5px; ">Сообщение не должно мене 3х символов или быть бустым</span>');
} else if(data == 2){
$("#errors").html('<span style="background-color:red; color:#000000; border: 1px solid #800000; padding:3px 4px 3px 5px; ">Сообщение не должно привышать более 300 символов</span>');
}else{
$("#No_errors").html(data).show("slow");
$("#pole").val('');
}
},
error: function(xhr, str){
alert("Возникла ошибка!");
}
});
});

как мне сделать окна ошибок чтобы они плавно исчезали?

Gemorroj
2015.07.15 11:25

EvgenCed1966 написал:

Нет, я спрашиваю про обьект типа "кнопка" но что бы с фоновым рисунком или как хоть ее цвет поменять?

ты о чем?

EvgenCed1966
2015.07.15 04:54

Нет, я спрашиваю про обьект типа "кнопка" но что бы с фоновым рисунком или как хоть ее цвет поменять?

Gemorroj
2015.02.12 09:58

у тебя на странице получается много одинаковых элементов с одинаковой id "closed". ей тоже нужно циферку в конец дописывать, как и к "content".
и лучше закрывать не явно вызывая функцию, а вешая обработчик типа такого.

Код:

1
2
3
$("span[id^='closed']").click(function () {
$(this).parent().hide("slow");
});
despod
2015.02.11 19:25

Всем привет помогите пожалуйста разобраться есть некий код 

Код:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
<?php
<div><img src="'.$dir.$files[$i].'">[<a href="javascript:inf(\'#content'.$i.'\')" id="say" class="infos">инфо</a>]
            
            <div id="content'.$i.-динамический'" style="display:none;" class="content">
            <span id="closed" onclick="out();">[X]</span>
            путь'.$dir.$files[$i].'<br/>
            имя '.$files[$i].'<br/>
            размер'.floor(filesize($dir.$files[$i])/1024).'b.
            </div>
            </div>
 
function inf(rz){
       
   $(rz).fadeIn(300).html(); //открытие контента 
    
 
}
 
function out(){
    $('#closed').click(function(){ 
    $('.content').hide("slow");// закрытие контента
                
});
}

вроде все норм работает но при закрытии закрываеться контейнер с content0
но когда пытаюсь закрыть контейнера с id content1,content2 и так далее они не закрываються
как можно проблему исправить гугл не помог

TLENS
2014.08.12 16:49

Merzavetz написал:

function vksitemention(info, tab) {
    var sites = tab.url.match(/^[\w-]+:\/*\[?([\w\.:-]+)\]?(?::\d+)?/)[1];
    chrome.tabs.create({
        url: 'http://vk.com/feed?q=domain:' +sites+ '&section=search'
    });
}
Здесь регулярка обрезает все кроме домена, а надо чтобы остался полный адрес, но только без "https://", "http://", "https://www.", "http://www.". Помогите пожалуйста, какая там должна быть регулярка?

Код:

1
2
3
4
5
6
7
8
9
10
var parser = document.createElement('a');
parser.href = "http://example.com:3000/pathname/?search=test#hash";
parser.protocol; // => "http:"
parser.hostname; // => "example.com"
parser.port; // => "3000"
parser.pathname; // => "/pathname/"
parser.search; // => "?search=test"
parser.hash; // => "#hash"
parser.host; // => "example.com:3000"
Gemorroj
2014.08.12 13:00

сделай просто replace

Дополнительно

forum.wapinet.ru

PunBB Mod v0.6.1
0.005 s