[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Метод ajaxSend
Shuriken
Доброго времени суток!

На странице есть два элемента, в которые данные подгружаются через ajax. Реализовано так:
function start(x, y)
{
$(document).ajaxSend(function(){
$('#'+y).fadeTo('fast','0.5');
});
$(document).ajaxComplete(function(){
$('#'+y).fadeTo('fast','1.0');
});

$('#'+y).load(y+'.php?param='+x);
}


Когда запрашиваю данные первого блока (id="elem1"), он становится полупрозрачным, после загрузки становится не прозрачным, т.е. работает как надо. Но после запроса данных второго блока (id="elem2") полупрозрачным становится не только второй, но и первый блок, а так не должно быть.

Как это исправить?
GET
Цитата
$('#'+y)


одинаковые ID?

_____________
Не тот велик, кто не падал, а тот кто падал и поднимался.
Shuriken
Цитата (GET @ 7.08.2015 - 11:40)
Цитата
$('#'+y)


одинаковые ID?

ID разные
sergeiss
Я так думаю, проблема в том, что ты не удаляешь обработчики. И если у тебя будет не 2, а 22 элемента, то при загрузке каждого нового элемента прозрачными будут становиться все те, что ты уже обработал :)

Тебе надо сделать по 1 экземпляру обработчиков для каждого события, вне функции start(). И внутри этих обработчиков смотреть, с чем ты работаешь. Примеры есть тут http://api.jquery.com/ajaxsend/
Допустим, вот этот:
// For example, you can restrict the callback to only handling events dealing with a particular URL:

$( document ).ajaxSend(function( event, jqxhr, settings ) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSend handler." );
}
}
);


_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Razzwan
А может наоборот всем элементам для запроса дать одинаковый селектор и использовать ключевое слово this? Внутри этого элемента уже будет свойство идентификатор, которое будет указывать на то, какой элемент должен менять свои css свойства.

_____________
Youtube канал WebDeveloper->Run()
Сайт для души
Gitter
Shuriken
Цитата (sergeiss @ 7.08.2015 - 21:39)
Я так думаю, проблема в том, что ты не удаляешь обработчики. И если у тебя будет не 2, а 22 элемента, то при загрузке каждого нового элемента прозрачными будут становиться все те, что ты уже обработал :)

Тебе надо сделать по 1 экземпляру обработчиков для каждого события, вне функции start(). И внутри этих обработчиков смотреть, с чем ты работаешь. Примеры есть тут http://api.jquery.com/ajaxsend/
Допустим, вот этот:
// For example, you can restrict the callback to only handling events dealing with a particular URL:

$( document ).ajaxSend(function( event, jqxhr, settings ) {
if ( settings.url == "ajax/test.html" ) {
$( ".log" ).text( "Triggered ajaxSend handler." );
}
}
);

Спасибо, помогло!
Быстрый ответ:

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