PhoneGap App - перетаскивание в Android как мобильный JQuery - PullRequest
2 голосов
/ 18 февраля 2012

Привет, ребята, я работаю над событием перетаскивания в Android с помощью мобильного JQuery. Я проверил код в браузере работает нормально, но не на устройстве. Кто-нибудь может помочь мне решить эту проблему. Я следую 1-й учебник по ссылке ....

    http://www.elated.com/articles/drag-and-drop-with-jquery-your-essential-guide/

Ответы [ 3 ]

0 голосов
/ 27 февраля 2012

Это мой сценарий, который я выполнил Эмруллах ...

  <script type="text/javascript">
  $(document).ready(function() {
  $( init );
  function init() {
  document.addEventListener("touchstart", touchHandler, true);
  document.addEventListener("touchmove", touchHandler, true);
  document.addEventListener("touchend", touchHandler, true);
  document.addEventListener("touchcancel", touchHandler, true);   
  }
  $(function(){
  $(".drag")
  .bind( "dragstart", function( event ){
  // ref the "dragged" element, make a copy
  var $drag = $( this ), $proxy = $drag.clone();
  // modify the "dragged" source element
  $drag.addClass("outline");
  // insert and return the "proxy" element      
  return $proxy.appendTo( document.body ).addClass("ghost");
  })
  .bind( "drag", function( event ){
  // update the "proxy" element position
  $( event.dragProxy ).css({
  left: event.offsetX, 
  top: event.offsetY
  });
  })
  .bind( "dragend", function( event ){
  // remove the "proxy" element
$( event.dragProxy ).fadeOut( "normal", function(){
$( this ).remove();
});
// if there is no drop AND the target was previously dropped 
if ( !event.dropTarget && $(this).parent().is(".drop") ){
// output details of the action
$('#log').append('<div>Removed <b>'+ this.title +'</b> from <b>'+   
    this.parentNode.title +'</b></div>');
// put it in it's original <div>
$('#nodrop').append( this );
    }
// restore to a normal state
    $( this ).removeClass("outline");   
    });
    $('.drop')
.bind( "dropstart", function( event ){
// don't drop in itself
if ( this == event.dragTarget.parentNode ) return false;
// activate the "drop" target element
$( this ).addClass("active");
})
.bind( "drop", function( event ){
// if there was a drop, move some data...
$( this ).append( event.dragTarget );
// output details of the action...
$('#log').append('<div>Dropped <b>'+ event.dragTarget.title +'</b> into <b>'+ 
    this.title +'</b></div>');  
})
.bind( "dropend", function( event ){
// deactivate the "drop" target element
$( this ).removeClass("active");
    });
});
    function touchHandler(event)
    {
    var touches = event.changedTouches,
    first = touches[0],
    type = "";
    switch(event.type)
    {
    case "touchstart": type = "mousedown"; break;
    case "touchmove":  type="mousemove"; break;        
    case "touchend":   type="mouseup"; break;
    default: return;
    }
    var simulatedEvent = document.createEvent("MouseEvent");
    simulatedEvent.initMouseEvent(type, true, true, window, 1,
        first.screenX, first.screenY,
           first.clientX, first.clientY, false,
                 false, false, false, 0/*left*/, null);
    first.target.dispatchEvent(simulatedEvent);
     event.preventDefault();
     return;
    }
    });
    </script>
0 голосов
/ 28 февраля 2012

Ваш код выглядит нормально, и вы сказали, что он успешно работал в браузере. Я думаю, что проблема, возможно, в файле jquery, который вы использовали. Если вы связали файл jquery с веб-сайтом, убедитесь, что ваше устройство подключено к Интернету. Если нет подключения к Интернету, загрузите и поместите файл «jquery mobile» в папку сборка / www и свяжите файл.

Разве вы не запускали приложение на эмуляторе? С какой ошибкой вы столкнулись?

0 голосов
/ 22 февраля 2012

Проблема может быть одной из следующих: 1 - устройство должно иметь подключение к Интернету 2 - используемые вами файлы не являются "jquery mobile".это просто файлы jquery, которые используются для разработки веб-страниц.3 - Если вы используете приложение на планшете, я думаю, что ваше приложение может работать с помощью мыши планшета.Однако это не может работать, касаясь.

Это проблемы, которые я могу догадаться.Я надеюсь, что вы найдете точное решение.И если вы найдете это, пожалуйста, разместите это здесь для меня:)

...