[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: jquery POST затем ещё раз POST
Dezigo
Столкнулся с jquery..'bagom'.
Делаю jquery POST с загрузкой.
Возврощаю данные, и мне надо кликнуть на сылку(возврощёную) и сделать ещё 1 POST только с загрузкой в другом <div>.
Но как токо я делаю второй POST - в возврощёном <div>,у меня автоматически вызывается первая загрузка,даже если я не указываю вообще загрузку во 2-ом POST.
Вот код. File index.html
 <html>
<head>
<script
type="text/javascript" src="jquery.js"></script>

    <script type="text/javascript">
$(document).ready(function(){
$('.uptrig').click(function() {
var a = $(this).attr("cont");

$(document).ajaxSend(function() {
$("#contentLoading").show();
$("#content").hide();
});

$(document).ajaxStop(function() {
$("#contentLoading").fadeOut("slow");
$("#content").show();
});

var t = "POST/test.php";

$(this).html("Pressed");
$.post(t,{time: "2pm"}, function(data)
{
$("#box2").append(data);
});
});
});
function postTwo()
{
var tr = "POST/a.php";
$.post(tr,{time: "2pm"}, function(data)
{
$("#box3").html(data);
});

};

</
script>

  </head>
<body>
<div
id='contentLoading' style='display:none;'>loading.........</div>
<div
id='content' style='display:block'>
<a
href="#" id="link">jQuery</a>
<div
id='box2'></div>
<div
id='uniq1' class='uptrig' cont='12'>Click here - First Post data</div>

<div
id='contentLoadingf' style='display:none;'>loading 2</div>
<div
id='contentf'>
<div
id='box3'>Second data</div>
</div>
</div>
</body>
</html>

File test.php
<?php
sleep(1);
echo "<div id='ss' class='ds' onClick='postTwo();'><br>><b>CLICK here to post</b><</div>"
?>




Спустя 28 минут, 44 секунды (6.04.2010 - 09:57) Michael написал(а):
Странно, вроде все верно. Может в верстке что-то ?:
='postTwo();'><br>><b>C

Спустя 54 минуты, 33 секунды (6.04.2010 - 10:51) Dezigo написал(а):
А ты проверь..
У меня проект,нужно после загузки страници,сделать ещё возможность голосовать.. как на youtube.
Только я не догоняю почему после подгуженого <div>,я оброщаюсь и загрузка сама по себе опять активируется.. huh.gif
Этот код для примера накидал,но типичная ситуация. blink.gif

Спустя 11 минут, 44 секунды (6.04.2010 - 11:03) Dezigo написал(а):
Я записал этот пример. Что я имею введу и как это срабатывает - не правельно.
http://www.youtube.com/watch?v=xVSQ83tT9-E
huh.gif

Спустя 4 часа, 46 минут, 58 секунд (6.04.2010 - 15:50) Michael написал(а):
В чем то другом у тебя проблема. Я у себя проверил - никаких странностей не заметил.
Код: index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
Два аякс-запроса</title>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script
type="text/javascript" src="inc/jquery.js"></script>
<script
type="text/javascript">
$(document).ready(function(){

$('#one').click(function() {
$.post('./xxx.php', function(data) {
//alert(data);
$(document.body).append(data);
});
});
});
function postTwo() {
$.post('./yyy.php', function(data) {
$('div#three').append(data);
});
}
</script>
<style
type="text/css">
div {
height:100px;
cursor:pointer;
}
div#one {
background-color:#00CC00;
}
div#two {
background-color: #66CCFF;
}
div#three {
background-color: #FFFFCC;
}

</style>
</head>

<body>
<div
id="one">One</div>
<div
id="three">Three</div>
</body>
</html>



xxx.php:
<?php
echo "<div id='two' class='ds' onClick='postTwo();'><b>CLICK here to post 2</b></div>";
?>

yyy.php:
<?php
echo "<b>Result put in three   </b>";
?>

Спустя 5 часов, 56 минут, 48 секунд (6.04.2010 - 21:47) Dezigo написал(а):
ты сделал без загрузки.
а мне надо с
$(document).ajaxSend(function() {
$("#contentLoading").show();
$("#content").hide();
});

проблема с загрузкой,она вызывается сама по себе,когда я делаю второй раз пост. заметь это на примере или на видео. unsure.gif ph34r.gif

Спустя 10 часов, 42 минуты, 25 секунд (7.04.2010 - 08:29) Michael написал(а):
Ты появление сообщения о загрузке называешь загрузкой?
Я под загрузкой понимаю именно загрузку данных аяксом.

В твоем случае элементарно решается так:

<script type="text/javascript">
var who = '';
$(document).ready(function(){
// не надо их внутрь первой функции - это не играет роли. События навесятся и будут висеть
$(document).ajaxSend(function() {
if (who != 'one') return;
$("#zag").show();
});

$(document).ajaxStop(function() {
if (who != 'one') return;
$("#zag").hide();
who = '';
});
$('#one').click(function() {
who = 'one';
$.post('./xxx.php', function(data) {
//alert(data);
$(document.body).append(data);
});
});
});
function postTwo() {
who = 'not_one';
$.post('./yyy.php', function(data) {
$('div#three').append(data);
});
}
</script>

Спустя 11 часов, 55 минут, 38 секунд (7.04.2010 - 20:25) Dezigo написал(а):
кривоватый способ.. но способ заглушки ph34r.gif
у меня были такие идей но это не то.
я максимально подробно написал функцию,что бы было понятно..сдесь..
конечно я разбил всё на функции..и способ у меня другой..
но идеея сдесь такае же -
в файле js 500 строк.. и каждый раз проверяется наличие
 if (who != 'one')
blink.gif я бы не хотеле этого. ph34r.gif


Спустя 11 часов, 9 минут, 39 секунд (8.04.2010 - 07:34) Michael написал(а):
Цитата (Dezigo @ 7.04.2010 - 19:25)
кривоватый способ.. но способ заглушки  ph34r.gif

Тем не менее официальный метод решения по тому же принципу.
Заглянул на сайт jQuery и посмотрел:
$('.log').ajaxSend(function(e, xhr, settings) {
if (settings.url == 'ajax/test.html') {
$(this).text('Triggered ajaxSend handler.');
}
}
);

идет проверка по адресу.
Вообще хорошо бы тебе самому почитать про эти методы ajaxSend, потому что ты неверно понимаешь их работу.

Цитата
я бы не хотеле этого.


Что может быть проще - не используй события ajaxSend (и подобные) вообще, а делай все вручную.

Спустя 1 час, 6 минут, 17 секунд (8.04.2010 - 08:41) Dezigo написал(а):
мне не нужно вызывать повторно событие - моё событие.
ясно что это функция ajaxSend, которая исполняется всякий раз после отправки запроса AJAX. Это событие Ajax.


Цитата
Ты появление сообщения о загрузке называешь загрузкой?
да. smile.gif

Я уже просмотрел сайты jquery,forum решения бага этого ещё не видел. wink.gif Я хочу ещё решения.,пока сделаю как есть. huh.gif в твоём примере идея.


Спустя 8 минут, 42 секунды (8.04.2010 - 08:49) Michael написал(а):
Цитата (Dezigo @ 8.04.2010 - 07:41)
Я уже просмотрел сайты jquery,forum решения бага этого ещё не видел.

какого бага? Что работает не так, как подразумевалось разработчиками jQuery?
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.