我正在建立一个网络应用并尝试启用触控功能。
我有一个需要滚动的列表(我目前正在使用iScroll)
可以点击列表中的项目。
列表中的项目可以拖动(我希望)。
我正在使用以下代码在滚动时禁用点击次数
var myScrollingList = new iScroll('list_scrolling' , { onScrollMove: function() { $('a').bind('click', function(e){ e.preventDefault();}); }, onScrollEnd : function(){ $('a').unbind('click'); } });
我正在使用以下代码(使用jQuery longclick)来区分单击和长按,以便我可以通过长按来触发拖动
$('a.item').click(500,function(ev){ console.log('long-click'); ev.target.draggable({ helper: function(){ return jQuery(this).clone().appendTo('body').css('zIndex',500); } }); return false; }); $('a.item').click(function(){ console.log('short click'); return false; });
好消息是我可以在不触发“长按”的情况下滚动。
问题是双重的
1)在滚动结束时触发常规点击,但不是“短按”,因此触发的是常规的非javascript点击事件。
2)我的ev.target.draggable没有进行目标拖动。有没有办法将该目标创建为可拖动元素?或者我最好只是克隆elment然后以某种方式将克隆设置为可拖动?或任何其他建议。