2

重複の可能性:
jQueryのドラッグアンドドロップによるクリックイベントの防止

フォトギャラリーのスライダーがあると仮定します。ユーザーは写真スライダーをドラッグして、写真をクリックしたときに表示する写真を選択できます。問題は、クリックイベントがドラッグイベントとオーバーラップしていることです。つまり、ユーザーが写真をクリックしてドラッグすると、クリックイベントも発生します。ありがとう

    //slider is draggable
    $('#slider').draggable({axis: "x"});

    //slider photo click event
    $('#slider li').click(function() {
        page_index = $(this).attr('class').substring(4);
        tmp = parseInt(page_index);
        $('#book').turn('page', tmp);
        close_overlay();
    })
4

1 に答える 1

1

この問題は、イベントのバブリングが原因だと思います。私の解決策を試してください

function cancelBubbleEvent(e) {
    if (e) {
         e.stopPropagation();
    }
    else {
         window.event.cancelBubble = true;
    }
}

//slider is draggable
$('#slider').draggable({axis: "x"});

//slider photo click event
$('#slider li').click(function(e) {
    page_index = $(this).attr('class').substring(4);
    tmp = parseInt(page_index);
    $('#book').turn('page', tmp);
    close_overlay();

    // cancel event bubbling
    cancelBubbleEvent(e);
})
于 2013-01-02T03:42:39.207 に答える