Автор Тема: После первого действия скрипт перестает работать  (Прочитано 14476 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн cyberx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Возникла одна проблема. Вот скрипт который делает сортировку у перетаскивание с добавлением в базу, проблема в том что после первого действия скрипт перестаёт работать, после первого запроса уже не отсылается и не работает сортировка, вроде firebug ничего не показал
var dropped = false; var templateHtml; $(document).ready(function(){  function addlist(param)  {    $.ajax({            url: \'index.php\',            data: \'drop=\'+encodeURIComponent(param),            type: \'POST\',            dataType: \'php\',            success: function(msg)             {                     if(parseInt(msg)!=0)               {                $(\'#pageContent\').html(msg);                    }             }       });  }   setSortable();    $("#droppable").droppable({        accept:".drop",        drop:function(event,ui){            dropped = true;            addlist(ui.draggable.text());        }    });   });  function setSortable(){         $("#sortable").sortable({ opacity: 0.6, cursor: \'move\', update: function() {            var order = $(this).sortable("serialize") + \'&action=listing\';            $.post("index.php", order, function(theResponse){                $("#pageContent").html(theResponse);            });                                                                     }                                         });       $("#sortable li").addClass("drop").bind(\'mousedown\',function(){        templateHtml = $("#sortable").html();    }); }

 
  • One
  • Two
  • Three
  • Four
  • Five
  • Six
 
 
 

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Уважаемый, если хотите, чтобы Ваш скрипт читали люди, потрудитесь привести его в читаемый вид!

Оффлайн cyberx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Он та был нормально, просто как сюда забросил редактор его изменил,

Цитировать

var dropped = false;
var templateHtml;
$(document).ready(function(){

function addlist(param)
 {
   $.ajax({
           url: \'index.php\',
           data: \'drop=\'+encodeURIComponent(param),
           type: \'POST\',
           dataType: \'php\',
           success: function(msg)
            {      
             if(parseInt(msg)!=0)
              {
               $(\'#pageContent\').html(msg);    
              }
            }
      });
 }
 
setSortable();
   $("#droppable").droppable({
       accept:".drop",
       drop:function(event,ui){
           dropped = true;
           addlist(ui.draggable.text());
       }
   });
 
});

function setSortable(){

       $("#sortable").sortable({ opacity: 0.6, cursor: \'move\', update: function() {
           var order = $(this).sortable("serialize") + \'&action=listing\';
           $.post("index.php", order, function(theResponse){
               $("#pageContent").html(theResponse);
           });                                                            
       }                                
       });

 
   $("#sortable li").addClass("drop").bind(\'mousedown\',function(){
       templateHtml = $("#sortable").html();
   });
}

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Выдаётся ли какая-нибудь ошибка?

Оффлайн cyberx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Нет просто после первого действия перестаёт работать. После перетаскивания или отсортировки происходит post запрос и после не перетаскивание не происходит и не сортировка

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
То есть, один раз всё же отрабатывает?

Оффлайн cyberx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Да один раз работает, проблема появляется после того как происходит отсылка post запроса. Вот например после перебрасывания срабатывает функция
Цитировать

addlist(ui.draggable.text());

Вот она и делает пост запрос
Цитировать

 function addlist(param)
  {
    $.ajax({
           url: \'index.php\',
           data: \'drop=\'+encodeURIComponent(param),
           type: \'POST\',
           dataType: \'php\',
           success: function(msg)
          {      
            if(parseInt(msg)!=0)
             {
              $(\'#pageContent\').html(msg);     
             }
           }
      });
  }

А вот если в ней вместо пост запроса записать просто делать alert то после действия выдает alert и продолжает работать, значит проблема появляется после post запроса

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
А что запрос возвращает и возвращает ли что-нибудь вообще?

Оффлайн cyberx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Да после первого действия все возвращает правильно, работает идеально, но после первого перестаёт работать скрипт, не перетаскивает, не перебрасывает и тем более не отсылает

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Уточняю: post-запрос что-нибудь возвращает?

Оффлайн cyberx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
После первого да, возвращается все правильно. После ничего не работает, ни перетаскивание и ни пост не отправляется

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Понял. Вы полностью подменяете содержимое контейнера, содержащего элементы, которым назначены обработчики событий. Иными словами, после отработки скрипта у Вас появляется совершенно новый набор DOM-элементов, для которых не предусмотрена обработка событий

Оффлайн cyberx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Не подскажите как собрать скрипт чтоб он работал? Мне очень важно и эта вещь мне тормозит все дело.

Оффлайн brainkiller

  • Фанат форума
  • Ветеран
  • *****
  • Сообщений: 527
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Попробуйте после отработки addlist() повторно назначить обработчики событий.

Оффлайн cyberx

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 12
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Я не очень разбираюсь в js и не понял как решить эту проблему. Там у меня так
Цитировать





  • One

  • Two

  • Three

  • Four

  • Five

  • Six










if(isset($_POST[\'action\']))
{
echo \'action\';
}
if(isset($_POST[\'drop\']))
{
echo \'drop\';
}
?>



Пост отсылается на #pageContent, если послать на #droppable то работает без проблем, просто дизайн сбывается, не могу понять в чом проблема

 

Sitemap 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