JQuery перетаскиваемая ошибка выдает при срабатывании «mouseup» - PullRequest
1 голос
/ 26 мая 2010

Если вы строите простой драггер:

$(document).ready(function(){
  $('#tomove').draggable({
    axis: 'x',
    drag: function(event, ui) {
      mouseUp();
    }
  });
});

И вы пытаетесь остановить это программно:

function mouseUp() {
  if($('#tomove').offset().left > 400) {
    $('#tomove').trigger('mouseup');
  }
}

Вы получите это сообщение в консоли ошибок:

this.helper is null

Есть ли способ исправить это? Спасибо за вашу помощь.

1 Ответ

0 голосов
/ 26 мая 2010

Похоже, вы просто пытаетесь ограничить движение на перетаскиваемом элементе, это правильно? Вы видели эту страницу: http://jqueryui.com/demos/draggable/#constrain-movement

EDIT

Как насчет этого, тогда: (образец страницы, делает то, что вы просите - помните о месте включения jquery)

Также обратите внимание, что я изменил название метода на что-то более подходящее. Это не остановит пользователя от возможности перетаскивания назад влево. Я не думал, что вы на самом деле хотите остановить их, если они пробьют 400 (или любую другую стену).

Если вы хотите это сделать, вы просто $('#element').draggable('destroy')

<html>
    <head>
        <title>Draggable jQuery-UI Width Block</title>
        <script src="jquery-1.4.2.min.js" ></script>
        <script src="jquery-ui-1.8.1.custom.min.js" ></script>
    </head>
    <body>
        <div id="tomove" style="width:100px;height:20px;background:silver;">
            <span>some text</span>
        </div>
        <script>
        $(document).ready( function() {
            $('#tomove').draggable({
                axis:   'x',
                drag: function(event, ui) {
                    dragBlock( ui );
                }
            });
        });
        function dragBlock( ui ) {
            if( ui.position.left > 400 ) {
                ui.position.left = '400px';
            }
            if( ui.position.left < 0 ) {
                ui.position.left = '0px';
            }
        }
        </script>
    </body>
</html>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...