Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/398.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 无法将属性onclick设置为null_Javascript_Events_Onclick - Fatal编程技术网

Javascript 无法将属性onclick设置为null

Javascript 无法将属性onclick设置为null,javascript,events,onclick,Javascript,Events,Onclick,今天我在和一些普通的JS闲逛,对onclick事件有一个问题 最好只显示代码: function _(x) { return document.querySelector(x); } function toggleSlide(el, maxH) { var target = _(el); if(target.style.height == null || target.style.height == maxH+"px") { target.style.tr

今天我在和一些普通的JS闲逛,对onclick事件有一个问题

最好只显示代码:

function _(x) {
    return document.querySelector(x);
}
function toggleSlide(el, maxH) {
    var target = _(el);
    if(target.style.height == null || target.style.height == maxH+"px") {
        target.style.transition = "height 0.3s linear 0s";
        target.style.height = "0px";
    }else {
        target.style.transition = "height 0.3s linear 0s";
        target.style.height = maxH+"px";
    }
}
如果我将onclick事件添加到按钮,则一切正常,如下所示:

<button id="menu-btn" onclick="toggleSlide('#menu', 280)">Toggle</button>

如何在不在html中添加onclick的情况下访问切换功能?

您正在尝试在按钮存在之前添加侦听器。将有问题的代码放在按钮后的一个单独的
中,或放在一个
onload中(首选,请参见下面的代码)


编辑:请注意,如果您有多个,它们应该放在同一个
onload
函数中,否则最后一个将覆盖以前的函数。

我认为如果您使用firebug或类似工具对此进行调试,它可能会给出答案。您的js是否运行onload?如果您的脚本正好包含在结束正文标记之前,则不应该出现此错误。
_('#menu-btn').onclick = function() {
    toggleSlide('#menu', 280)
}
window.onload = function() {
    _("#menu").onclick = function() {
        toggleSlide('#menu', 280);
    };
};