Javascript 单击关闭小部件

Javascript 单击关闭小部件,javascript,jquery,html,Javascript,Jquery,Html,我有一些脚本,可以将小部件滑出并在单击时隐藏它,它在单击时显示但不隐藏 我在控制台中看到了这个错误 未捕获的TypeError:无法将属性“onclick”设置为null 我不知道为什么我的小部件在点击id=“closewiget” 请求更新以添加HTML 我在另一个JS文件中使用了id=“closewiget” var averageRating = '<div class="da-all db-all" style="margin-bottom:110px">' +

我有一些脚本,可以将小部件滑出并在单击时隐藏它,它在单击时显示但不隐藏

我在控制台中看到了这个错误

未捕获的TypeError:无法将属性“onclick”设置为null

我不知道为什么我的小部件在点击
id=“closewiget”

请求更新以添加HTML

我在另一个JS文件中使用了
id=“closewiget”

 var averageRating = '<div class="da-all db-all" style="margin-bottom:110px">' +
            '<h4>' +
            '<img class="db-hide onetwothree" style="padding-top:5px;" src="https://embed.widgetpack.com/widget/img/google_rating_logo_36.png" alt=' + firmname + '>' +
            '<span class="da2-da6 db1-db3" style="font-size: 1.1rem">' + firmname + '</span>' +
            '<i class="da8 db4 fa fa-angle-double-right" id="closewiget"  aria-hidden="true"></i>' +
            '<div class="da2-da5 db1-db3" style="font-size: 1.3rem">' +
            '<em class="da6-da8" id="em-padd" style="font-size: 1.3rem;">' + averageRatingResult + '</em>';
var平均值=“”+
'' +
'' +
''+firmname+''+
'' +
'' +
''+averageRatingResult+'';

这可能意味着元素还不在DOM中。因此,此javascript位于页面源代码中的元素之上


您可以使用
onload
事件、
setTimeout
调用或重新排序HTML来修复此问题。

如果您已经在使用jQuery,为什么要使用document.getElementById,然后尝试分配onClick

$('#cbp-spmenu-s2').click(function() {
    classie.something();
    // do stuff
});

元素还不在DOM中。您可能希望将所有内容都放在ready Callback上。嗯,+1
window.onload=function(){
可以工作,但稍后我会调用另一个脚本
$('#cbp-spmenu-s2').click(function() {
    classie.something();
    // do stuff
});