未捕获的TypeError:无法设置null的属性'onclick'

时间:2017-07-27 18:05:13

标签: javascript jquery wordpress

e.target.dataset.id

这个代码存在于我的WordPress主题中的custom.js中,它处理图像Popup,但是在头版opr其他页面上没有比其他Jqueries或自定义查询编写的自定义查询。 js没有执行,比如Popmenu等。解决方案是什么?

// Get the modal
    var modal = document.getElementById('bozy-mymodal');
    // Get the image and insert it inside the modal - use its "alt" text as a caption
    var img = document.getElementById('bozy22-popup');
    var modalImg = document.getElementById("image-01");
    var captionText = document.getElementById("caption");
    img.onclick = function(){
        modal.style.display = "block";
        modalImg.src = this.src;
        captionText.innerHTML = this.alt;
    }

这似乎正在寻找一个名为Uncaught TypeError: Cannot set property '**onclick**' of null at custom.js:20 at custom.js:44 的图像,该图像在该页面上不存在,但在滑块工作的页面上存在。

body22-popup

类似的情况在这里→ i'm getting an Uncaught TypeError: Cannot set property 'onclick' of null?

有没有办法在custom.js中执行那部分可能弹出的图像不存在的代码。

在Wordpress中,脚本会像这样添加→

var img = document.getElementById('body22-popup');

1 个答案:

答案 0 :(得分:2)

因此,在尝试分配处理程序之前,请确保img不为空:

...
var img = document.getElementById('bozy22-popup');
if ( img ) 
{
    img.onclick = function(){
        modal.style.display = "block";
        modalImg.src = this.src;
        captionText.innerHTML = this.alt;
    }
}