私はWebアプリを構築し、タッチ対応にしようとしています。
スクロールする必要のあるリストがあります(現在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;
});
すばらしいニュースは、「ロングクリック」をトリガーせずにスクロールできることです。
問題は2つあります
1)通常のクリックはスクロールの最後にトリガーされますが、「ショートクリック」ではトリガーされないため、トリガーされるのは通常の非JavaScriptクリックイベントです。
2)ev.target.draggableがターゲットをドラッグしていません。そのターゲットをドラッグ可能な要素に作成する方法はありますか?または、要素のクローンを作成してから、クローンをドラッグ可能として設定する方がよいでしょうか。または他の提案。