防止内部div触发外部div事件

时间:2015-09-11 15:52:52

标签: javascript jquery html css

我创建了一个基本的行单击并拖动选择功能。但问题是点击并拖动列可以打开和关闭它们。我正在寻找某种类型的return falsestopPropagation,但我无法让它们起作用。

return false可以防止文本选择,但不会阻止列选择影响行选择。

要演示http://jsfiddle.net/sjwcztre/,请尝试从右侧选择行 - 没问题。但是尝试选择列文本存在的行 - 它变得不稳定

    var isMouseDown = false;

$('.row').each(function () {
    $(this).mousedown(function () {
        isMouseDown = true;
        rowClickHandler(this);
        console.log('mdown');
        return false;
    })
        .mouseover(function () {
        if (isMouseDown) rowClickHandler(this);
    });

    $(document).mouseup(function () {
        isMouseDown = false;
    });
});

function rowClickHandler(obj) {
    $(obj).toggleClass('highlight');
}

1 个答案:

答案 0 :(得分:1)

Check this,看看它是否适合你。基本上,您需要为行的子项创建事件并以不同方式处理它们,添加hoverChild控制变量有助于防止从父项再次激活悬停。