我有一种情况,如果一个按钮被双击,它突出显示整个按钮,这非常烦人,所以我试图通过向函数添加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设置为停止突出显示会停止按钮的所有突出显示,即使未单击该按钮也是如此,因此这不是一个选项。
答案 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;
});
最后三行将阻止选择。
答案 1 :(得分:0)