18910140161

JavaScript-AddeventListener在使用类似函数打开表单堆栈溢出后单击不工作

顺晟科技

2022-10-19 12:30:36

124

我在让addEventListener关闭使用addEventListener打开的窗体时遇到问题。

例如,以下是打开表单的HTML、CSS和JS:

工作正常,窗体打开并可编辑。但是,当设置addEventListener以关闭窗体时,它不会被触发,甚至不会被识别。下面是它的代码:

let addAlarmLink = document.getElementById('alarm-add');
let addAlarmForm = document.getElementById('adding-alarm');

addAlarmLink.addEventListener('click', () => {
    if (addAlarmForm.style.display === 'none' || addFriendForm.style.display === 'none') {
        addAlarmForm.style.display = 'block';
    } else {
        addAlarmForm.style.display = 'none';
    }
});

这不起作用,我尝试了其他几种方法,使用onClick并设置了一个函数,但结果相同。我还尝试设置一个console.log来只吐出一条消息,但在控制台中什么也没有得到。我注意到的另一件事是,在检查styles时,style会从#adding-alarm to element.style中推出。

显示在element.style下的样式图片,而不是更新#adding-alarm

是我做错了什么,还是让它发生得更好?

这对我来说是非常新的。


顺晟科技:

仅从您的代码来看,它工作得很好。下面是代码片段中的一个工作示例,在另一个答案中只告诉了一个问题,那就是错误地写成了。

您的代码实际上运行良好。它只需要一些清理和很少的调整, 下面是我对代码所做的一些调整,它按预期工作。

注意属性的混乱顺序。在工作情况下,您有:

let addAlarmLink = document.getElementById('alarm-add');
let addAlarmForm = document.getElementById('adding-alarm');

addAlarmLink.addEventListener('click', () => {
    if (addAlarmForm.style.display === 'none' || addFriendForm.style.display === 'none') {
        addAlarmForm.style.display = 'block';
    } else {
        addAlarmForm.style.display = 'none';
    }
});

在非工作情况下,您有:

let addAlarmLink = document.getElementById('alarm-add');
let addAlarmForm = document.getElementById('adding-alarm');

addAlarmLink.addEventListener('click', () => {
    if (addAlarmForm.style.display === 'none' || addFriendForm.style.display === 'none') {
        addAlarmForm.style.display = 'block';
    } else {
        addAlarmForm.style.display = 'none';
    }
});

这可能是您的错误。但是,您说控制台上没有显示任何内容,这很可疑,因为显然控制台上应该有一些错误(HTMLElement上没有定义显示)

  • TAG:
相关文章
我们已经准备好了,你呢?
2024我们与您携手共赢,为您的企业形象保驾护航