大佬教程收集整理的这篇文章主要介绍了jquery-ui – 结合jQuery Mobile taphold和jQuery UI draggable,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
Draggable正在以下代码中的元素上初始化:
$('div.rect','#outerBox').draggable({ containment: "parent",grid: [50,50],disabled: true,stop: function(event,ui) { $(this).draggable('disable'); $(this).removeClass('highlighted'); } });
如您所见,最初禁用了可拖动功能,因为我想在taphold事件后启用它.为实现这一点,我目前正在使用以下代码:
// Bind long press event to rectangle elements $('div.rect','#outerBox').bind('taphold',function(event,ui) { // Enable dragging on long press $(this).addClass('highlighted'); $(this).draggable('enable'); });
这是有效的,但问题是需要’释放并再次点击’事件才能拖动元素,而不是在taphold事件之后直接拖动.
这可能是某种事件干扰问题吗?我已经尝试过像event.preventDefault()这样的东西,但我对jQuery事件的了解并不多,所以我不知道这是否应该有所不同.
关于如何解决这个问题的任何想法?
即见Jquery-ui sortable doesn’t work on touch devices based on Android or IOS
接下来我会说触摸启动事件没有流过,因为在jquery mobile中实现了taphold.
只有在获得touchstart / mousedown事件时才会启动可拖动.
您可能需要在taphold事件处理程序中手动触发touchstart事件以使draggable启动:
$('div.rect',ui) { var offset = $(this).offset(); var type = $.mobile.touchEnabled ? 'touchstart' : 'mousedown'; var newevent = $.Event(typE); newevent.which = 1; newevent.target = this; newevent.pageX = event.pageX ? event.pageX : offset.left; newevent.pageY = event.pageY ? event.pageX : offset.top; $(this).trigger(newevent); });
以上是大佬教程为你收集整理的jquery-ui – 结合jQuery Mobile taphold和jQuery UI draggable全部内容,希望文章能够帮你解决jquery-ui – 结合jQuery Mobile taphold和jQuery UI draggable所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。