拖动/滑动如果在孩子身上mousedown会给出一个混蛋

时间:2015-08-10 09:38:25

标签: javascript jquery jquery-events custom-events

我正在处理以下用于创建基于自定义鼠标的滑动事件的代码。

现在我想将$('.element')作为值传递给' mousedown'当' o:刷卡'活动已启动,以便' mousedown'和' mousemove' event仅在我为滑动事件选择的元素上工作,而不在$('.element')的任何子元素上工作。

目前,如果有任何孩子被安置在$('.element')内,那么,' mousedown' event将其作为目标及其pageX位置(如果单击它),但我想要$('.element')相同,因此我需要传递一个值来自' o:swipe'事件发生在' mousedown'事件

目前,当点击任何$('.element')的孩子时,它会在移动时加注。

以下是jsbin

$(function(){

    var te = {};

    $('body').on('mousedown', function(e) {

        var ti = e;
        te.target = $(ti.target);
        te.bX = ti.pageX;
        te.lastX = te.target.position().left;

    }).on('mousemove', function(e) {

        te.eX = e.pageX;
        te.position = te.lastX + ( -1 * (te.bX - te.eX));
        te.target.trigger('o:swipe',{ pos : te.position });

    }).on('mouseup', function(e) { te = {}; });


    // ============ SWIPE EVENT SECTION ================

    $('.element').on('o:swipe', function(e, to) {

        $(e.target).closest($(this)).css( 'left' , to.pos + 'px');

    });

});

0 个答案:

没有答案