JS停止突出显示(双击)

时间:2013-07-15 21:13:14

标签: javascript jquery html

我有一种情况,如果一个按钮被双击,它突出显示整个按钮,这非常烦人,所以我试图通过向函数添加preventDefault()来修复它,以阻止突出显示,尽管我似乎无法阻止它发生:(
任何人都可以告诉我为什么忽略event.preventDefault();并突出显示按钮/文字?:

HTML:

<div class="loading-boundary">
    <div class="redesign-due-date-container">
        <div class="property due_date flyout-owner overdue value-set" style="margin-left:-3px">
            <div class="property-name">
                <span data-icon="calendar" class="calendar glyph toolbar-icon prod"></span>
                <span class="grid_due_date overdue">Yesterday</span>
            </div>
        </div>
    </div>
</div>

JS:

$(".property.due_date").click(function(event) {
    event.stopPropagation();
    event.preventDefault();

    var e = $(".show-full-duedate");

    if (e.css("display") != "block") {
        $(this).addClass("focused");
        e.css("display", "block");
    } else {
        $(this).removeClass("focused");
        e.css("display", "none");
    }

    return false;
});

我正在使用最新版本的Chrome进行测试 此外,将CSS设置为停止突出显示会停止按钮的所有突出显示,即使未单击该按钮也是如此,因此这不是一个选项。

2 个答案:

答案 0 :(得分:5)

尝试:

$(".property.due_date").on('click', function(event) {
    event.preventDefault();

    var elem = $(".show-full-duedate");

    elem.toggleClass('focused', elem.is(':visible'))
        .toggle(elem.is(':visible'))

    document.onselectstart = function() { return false; };
    event.target.ondragstart = function() { return false; };
    return false;
});

FIDDLE

最后三行将阻止选择。

答案 1 :(得分:0)

假设您正在谈论双击后突出显示的元素。

我发现了一个不同的帖子,提出了类似的问题。 - link

听起来似乎没有一种琐碎的方法可以禁止它,但你可以在选择元素后“取消选择”。

希望这有帮助。