javascript - 检查按钮点击事件并做一些事情,如果用户点击其他地方则删除它们

标签 javascript jquery html css web-applications

我将 onclick 函数附加到按钮#1,根据此函数,我正在更改其他按钮的不透明度并禁止用户单击它们。 但是我想撤消已更改的onclick事件,使其他按钮正常。 我的 javascript 和 jquery 代码如下;

btnLink.onclick = function(e) {
    var divToShow = document.getElementById('linkNewDiv');
    console.log('clicked');
    divToShow.style.display = 'inherit';
    $(btnVideo).prop('disabled',true);
    $(btnVideo).addClass('opacityReducing');
    $(btnPicture).addClass('opacityReducing');
    $(btnPublish).addClass('opacityReducing');
    $(btnPicture).prop('disabled',true);
    $(btnPublish).prop('disabled',true);
    $(btnCheck).addClass('opacityReducing');

我想不通。如果用户在我正在更改元素样式的元素之外单击并通过再次编写所有这些代码来禁用属性,我找到了一种方法。有更好的解决方案吗?谢谢:)

最佳答案

您可以使用 stopPropagation() 实现此目的。我对您的代码进行了一些更改以使其更具可读性,请检查:

$(document).on('click', function(e) {
    console.log('clicked');
    $('#linkNewDiv').css("display", "inherit");
    $(btnVideo, btnPicture, btnPublish).removeClass('opacityReducing').prop('disabled', false);
    $(btnCheck).removeClass('opacityReducing');
});
$('#bnLink').on('click', function(e) {
    e.stopPropagation();
    console.log('clicked');
    $('#linkNewDiv').css("display", "inherit");
    $(btnVideo, btnPicture, btnPublish).addClass('opacityReducing').prop('disabled', true);
    $(btnCheck).addClass('opacityReducing');
});

关于javascript - 检查按钮点击事件并做一些事情,如果用户点击其他地方则删除它们,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47162197/

相关文章:

javascript - 在 TruClient- HPE Loadrunner 中从网页中随机选择对象

javascript - 如何使用 JS 从 ajax 调用中写出 HTML

javascript - 通过 AJAX 拉入 JSON 以填充下拉列表

javascript - 如何在窗口加载和调整大小时对 div 使用 innerHeight?

javascript - 如何以 Angular 2 - 4 递增变量

javascript - RxJs 如何处理文档事件

javascript - 从 ReactJS 的组件列表中删除组件

javascript - Pick CSS for IE8 可在模拟器中运行但不能直接在 IE8 上运行

javascript - WINTER BASH 2020 季节形象的动画

javascript - HTML, Javascript 游戏,我想找到一种在页面显示上播放声音的方法