Не работает Drag ang Drop при использовании на странице ajax
Всем привет!
При написании скрипта столкнулся с проблемой. Скрипт - Drag and Drop (написан очень просто). Проблема - все работает хорошо. Но если на странице мы устанавливаем ajax - скрипт D&D перестает сохранять через куки положение окна. При этом в консоли пишет: "Uncaught TypeError: Object function (E,F){return new b.fn.init(E,F)} has no method 'cookie'" $.ajax({ url: "/mchat", cache: false, success: function(html){ $("#ls-ok").html(html); } }); Сам скрипт: $(function(){ var dragDistanceX, dragDistanceY, self; $('#chatbox').show(); $('#chatbox-top').mousedown(function () { self = $('#chatbox'); dragDistanceX = -1; dragDistanceY = -1; document.ondragstart = function() { return false } document.body.onselectstart = function() { return false } $(document).bind('mousemove', dragChat); }); $('body').mouseup(function () { $(document).unbind('mousemove', dragChat); document.ondragstart = function() { return true } document.body.onselectstart = function() { return true } $.cookie('mchatPosX', parseInt(self.css('left'))); $.cookie('mchatPosY', parseInt(self.css('top'))); }) $('#chatbox').css({ left: $.cookie('mchatPosX') || 0, top: $.cookie('mchatPosY') || 0, }); dragChat = function(event) { if (dragDistanceX < 0) { dragDistanceX = event.pageX - parseInt(self.css('left')); dragDistanceY = event.pageY - parseInt(self.css('top')); } else { var leftPosition = event.pageX - dragDistanceX > 10 ? event.pageX - dragDistanceX : 0; var topPosition = event.pageY - dragDistanceY > 10 ? event.pageY - dragDistanceY : 0; if (leftPosition + 10 + parseInt(self.width()) >= $(window).width()) { leftPosition = $(window).width() - parseInt(self.width()); } if(topPosition + 10 + parseInt(self.height()) >= $(window).height()) { topPosition = $(window).height() - parseInt(self.height()); } self.css({ left: leftPosition, top: topPosition }); } } }); #chatbox - Окно, которое перемещается #chatbox-top - Область на окне, при нажатии на которую скрипт активируется Прошу, подскажите, в чем может быть проблема. С таким сталкиваюсь впервые(( |
Не вижу взаимосвязи друг с другом приведенных вами двух листингов программы, извините но как бы надо более полную картину показать, что бы мы могли ее запустить и посмотреть что к чему... какое отношение имеет ваш листитнг dragdrop к тому куску кода что указан выше.
|
может все же устанавливая куку нужно указывать ее время жизни, да и путь рекомендуется указать например "/"
|
Тогда почему куки работают нормально до загрузки ajax?
Есть ли какие то другие формы записи ajax? |
Хотя я заметил, что если вытягивать содержимое какого то div'a с той странице, а не её целиком - все работает
-------------- В если попробовать не выводить всю страницу целиком, а только её содержимое? Например на странице находится: <div id="message"></div> <div id="message"></div> <div id="message"></div> <div id="message"></div> Как или можно импортировать гет-запросом и отобразить в таком же порядке, что и тут? |
id="message" ИД должен быть один уникальным на одном элементе, тоесть ИД не может повторяться на разных элементах. напиши лучше <div class="message"></div> $("#ls-ok").load("/mchat .message"); |
Спасибо огромное! Все работает!)))))
|
Часовой пояс GMT +3, время: 08:28. |