0

私はモバイル サイトで作業しており、イベントを発生させたくないときに発生することに苦労しています。

簡単にするために、(jQuery で) 次のように記述します。

el.on('touchend', function(ev) {
    ev.preventDefault();
    // fire an ajax call
};

ただし、ユーザーがページをスクロールしているときにアイテムをヒットすると、ajax リクエストが発生することがあります (その結果、ページの状態が変化します)。

私はそれを回避する方法を考えることができなかった (ev.stopPropagation()うまくいかなかった) のでdragstartdragendイベントを監視することにしました。

el.on('dragstart', function() {
     el.off('touchend');
});

el.on('dragend', function(ev) {
     ev.stopPropagation(); // <-- seems to do nothing
     // add back the event above (the function is set to a var)
});

コールバック内でアラートを出すと、ドラッグをやめた後にイベントが実際に発生したというtouchend確認が得られます。touchend

他のイベントが発生するのを防ぐ方法を知っている人はいますか? 私は盲目で、明らかな何かを見落としているだけだと思っています。

4

2 に答える 2

0

このような場合に使用する必要があると思います

event.stopImmediatePropagation();

于 2013-06-06T16:25:30.610 に答える
0

イベントの発生を止めることはできません。そのイベントのデフォルトの動作が発生するのを防ぐことしかできません。

touchend イベントが発生する前にページの状態が変化することが心配な場合は、関数を変更して状態の変化を確認してから説明する必要があります。

于 2012-05-12T01:19:26.650 に答える