javascript - 脾气暴躁的 JavaScript : function works only sometimes

标签 javascript function variables getelementsbyclassname typeerror

我有一个 JavaScript 函数,但有时只能工作。有时我会收到 Uncaught TypeError: Cannot read property of undefined ,有时该函数会按预期工作。

为了清楚地解释和演示这个问题,我录制了这个短视频:https://youtu.be/uSSes2_DPXU

这是我的功能:

function openLightBox() {
    var itemId = event.target.id; 
    var lightBox = document.getElementsByClassName(itemId);
    console.log(lightBox);
    lightBox[0].style.display = 'block' ;
}

解决方案

最终 HTML:

<a onClick="openLightBox(<?php echo get_the_ID()?>)">

最终的 JS:

function openLightBox(id) {
    var lightBox = document.getElementsByClassName(id);

    console.log(lightBox);
    lightBox[0].style.display = 'block';
}

最佳答案

它有时起作用的原因(我在这里有点猜测)取决于您单击元素的位置。既然你已经包装了你的a标签 div持有 id 的,是你的 a标签很好地包裹着 div维度方面?

实际上,将 id 添加到 a 会更有意义。标签。

<a onClick="openLightBox(<?php echo get_the_ID()?>)">

那么你的函数将是这样的:

function openLightBox(id) {
    var lightBox = document.getElementById(id);

    console.log(lightBox);
    lightBox.style.display = 'block';
}

extra info: event bubbling and target -vs- currentTarget

关于javascript - 脾气暴躁的 JavaScript : function works only sometimes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33035060/

相关文章:

c# - 局部变量需要同步吗?

javascript - 在现场使用 Wymeditor 安全吗?自动脚本可以禁用 javascript 吗?

javascript - Node.js - 套接字断开连接事件无法正常工作

javascript - 尝试使用 $rootScope 实现指令并收到 TypeError : Cannot read property '$on' of undefined

c - 如何在c中的函数中手动输入数组?

ios - Swift:声音返回 nil

javascript - iOS 对话框中的 HTML 滚动问题

c++ - 从一维数组中删除多次出现

javascript - Typescript - 如何从变量对象访问变量对象属性

variables - 永久 PowerShell 变量