JQuery перетаскивание перестает работать на определенных объектах? - PullRequest
1 голос
/ 23 мая 2009

Я успешно смог сделать элементы (например, элементы div, панели и т. Д.) Перетаскиваемыми, используя этот бит Jquery:

<script type="text/javascript">
      $(function() {
          $(".drag").draggable({ revert: true });
      });
</script>

Это прекрасно работает для всего, что уже существует на странице до того, как будет выполнена page_load, и до того, как возникнут какие-либо постбэки. У меня есть ряд кнопок (с классом «.catbuttons»), которые при нажатии будут вызывать мою базу данных и получать некоторые URL-адреса изображений. Получив этот набор URL-адресов, я делаю цикл for / next и создаю целую группу объектов изображений и помещаю их в панель. Каждое из изображений имеет класс «.drag», чтобы оно работало с JQuery выше.

Проблема в том, что они больше не тянут! Я прочитал еще один пост о необходимости повторного связывания JavaScript-материала после обратной передачи (даже частичной обратной передачи?), И это позволило бы новым элементам управления присоединить к ним вышеуказанный код Jquery и, следовательно, сделать его перетаскиваемым. После некоторого поиска в Google я наткнулся на это и проверил:

<script type="text/javascript">
        $(".catbuttons").live("click", function(){
            $(".drag").draggable({ revert: true });
        });
 </script>

Я попытался оставить это в разделе заголовка моей страницы aspx с оригинальным скриптом, а также иметь это здесь само по себе. Ни в коем случае не игра в кости.

Мысли

1 Ответ

0 голосов
/ 23 мая 2009

Вышеуказанная функция на самом деле ожидает клика от пользователя, чтобы снова вызвать перетаскивание. Вместо этого вам нужно сделать это после обратной передачи. Правило здесь, должно быть, для регистрации всех изображений с функцией перетаскивания, после размещения изображений на странице.

Edit: В вашем случае нажатие кнопки просто вызывает функцию для извлечения изображений. Эти изображения должны быть размещены на странице, прежде чем вы сделаете их перетаскиваемыми. Вы можете зарегистрировать созданный объект с помощью перетаскиваемых объектов сразу после операторов, в которые вы помещаете и применяете класс «.drag» к этим объектам / изображениям во время выполнения.

...