Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 15.07.2012, 13:14
Интересующийся
Отправить личное сообщение для Gerg007 Посмотреть профиль Найти все сообщения от Gerg007
 
Регистрация: 17.06.2011
Сообщений: 21

Проблемма "Заметки" и дублирование функции
Здравствуйте! столкнулся с такой проблеммой! делаю добавление в фавориты.заметки. есть ниже представленный код!

/* ДОБАВИТЬ В ФАВОРИТЫ */
jQuery(function(){
jQuery(".san").live('click',function() {
var id = jQuery(this).attr("id");
var mn_momx = jQuery(this).attr("name");
var dataString = 'mn_sid='+id+'&mn_mid='+mn_momx;
var parent = $(this);
jQuery.ajax({
type: "POST",
url: "sw.php",
data: dataString,
cache: false,
success: function()
{
jQuery(".odd"+id).fadeOut("", function() {jQuery(this).remove();jQuery(".odds"+id).fadeIn().append('<span class="odd'+id+' mn_chanishvna"><a style="color:#fff;font-size:10px;text-decoration:none;" class="san_am oppaa" id="'+id+'" name="'+mn_momx+'" href="#"> Добавлено</a></span><div class="odds'+id+'"></div>');});
}
});
return false;
});
});




/* СТЕРЕТЬ ИЗ ФАВОРИТОВ  */
jQuery(function() {
jQuery(".san_am").live('click',function() {
var id = jQuery(this).attr("id");
var mn_momx = jQuery(this).attr("name");
var dataString = 'mn_sid='+id+'&mn_mid='+mn_momx;
var parent = $(this);
jQuery.ajax({
type: "POST",
url: "sw.php",
data: dataString,
cache: false,

success: function()
{
jQuery(".odd"+id).fadeOut("", function() {jQuery(this).remove();jQuery(".odds"+id).fadeIn().html('<span class="odd'+id+' mn_chanishvna"><a style="color:#fff;font-size:10px;text-decoration:none;" class="san" id="'+id+'" name="'+mn_momx+'" href="#">Добавить</a></span><div class="odds'+id+'"></div>');});
}
});

return false;
});
});


проблемма! допустим добавляем пост в закладки срабатывает первый скрипт и добавляется! после жмём ещё раз и нормально срабатывает второй скрипт! но когда ещё раз и дальше раз жму он два раза выводит сообщение ДОБАВЛЕНО и последущего клика два раза моргает ДОБАВИТЬ. надеюсь вы поняли о чём я! он дублирует скрипт!
Ответить с цитированием
  #2 (permalink)  
Старый 22.07.2012, 14:49
Профессор
Отправить личное сообщение для Dmitriyff Посмотреть профиль Найти все сообщения от Dmitriyff
 
Регистрация: 22.07.2012
Сообщений: 164

Попробуйти уйти от live и использовать bind или on, а событие по новой навешивать при создании элемента
Ответить с цитированием
  #3 (permalink)  
Старый 22.07.2012, 15:09
без статуса
Отправить личное сообщение для Deff Посмотреть профиль Найти все сообщения от Deff
 
Регистрация: 25.05.2012
Сообщений: 8,219

Gerg007,
Снять live и добавлять по one для каждого элемента http://jquery-docs.ru/Events/one/#typedatafn при создании - редактировании
Функцию обработки события - делайте отдельной функцией, присоединяемой к обработчику, в сallback которой присоединяете новую установку однократного обработчика для данного элемента
Вообще для таких случаев удобнее вешать оnclick="Func()" непосредственно на тег в исходнике страницы

Последний раз редактировалось Deff, 22.07.2012 в 15:27.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Установить имя конструктора Андрей Параничев Общие вопросы Javascript 8 17.11.2011 10:09
Как в браузерах реализуются функции DOM (например createElement) iamme Общие вопросы Javascript 7 02.09.2011 20:26
динамическое содержимое функции alfmaster Общие вопросы Javascript 2 28.05.2011 17:10
arguments вызвавшей функции mister_maxim Общие вопросы Javascript 4 12.10.2010 16:21
Подскажите, как работает простой код (замыкание функции)? Dotod Общие вопросы Javascript 5 02.12.2009 04:03