1

KendoUI MobileのScrollViewコントロールをカルーセルとして使用していくつかの質問を格納し、スワイプイベントを無効にする必要があります(「ナビゲーション」を制御するために「次へ」ボタンと「前へ」ボタンを使用しています)。

私が遭遇している問題は、ScrollView内にjQuery-UIスライダーがあることですが、スライダーの値を変更しようとすると、ScrollViewが次の「ページ」に移動し始めます。

ScrollViewで「スワイプして移動」を無効にするネイティブの方法があることを期待していましたが、ドキュメントに何も見つかりませんでした。

ScrollViewページでイベントをキャッチして遊んだことがありますが、実際のデバイスで機能するものを取得できませんでした。

$('#scrollview-container [data-role="page"]').on('mousedown', function(e) {
    console.log('mousedown');
    e.stopImmediatePropagation();
});
$('#scrollview-container [data-role="page"]').on('touchstart', function(e) {
    console.log('touchstart');
    e.stopImmediatePropagation();
});

上記は私のシミュレーターでは機能しますが、実際のデバイスでは機能しません。

何か案は?

4

2 に答える 2

0

イベントのブロックを正しく行うには、スワイプイベントを設定するときに、バインドがいつどのように行われるかを正確に確認する必要があります。on()、bind()、live()は異なるイベント順序を生成します。スワイプを開始した後でイベントをブロックすると、役に立ちません。

ただし、フレームワークによって設定されたイベントに関連する順序は重要ではないため、子要素でイベントをブロックする方がうまくいく場合があります。スライダーの直接の親からのタッチイベントの伝播を停止してみてください。

于 2012-11-16T03:04:27.803 に答える
0

これはここで答えられます:http://www.telerik.com/forums/scrollview-is-missing-a-lot-of-essential-functionality-(-)

var scrollview = $("[data-role=scrollview]").getKendoMobileScrollView();
var cancel = function() { this.cancel(); };

scrollview.pane.userEvents.bind("start", cancel); //disable the pages movement

// to no-longer disable the swipe use this:
// scrollview.pane.userEvents.unbind("start", cancel); //enable the pages movement
于 2014-05-19T06:55:02.553 に答える