Javascript 函数在页面加载时触发,而不是在点击时触发

标签 javascript html css

函数“display()”在页面加载时触发,而不是在点击时触发。我不确定为什么。当我将功能更改为“警报”时,它会更明显地显示问题。我想尝试更改参数变量,但没有用。我使用了 x 和内容。我如何让它停止加载?它也只加载前两个 div。我在单独的 javascript 页面上使用了相同的格式,并且效果很好。

我没有
https://jsfiddle.net/ethacker/92r0apd9/ JS:

var firstTrimesterButton = document.getElementById('firstTri');
var secondTrimesterButton = document.getElementById('secTri');
var thirdTrimesterButton = document.getElementById('thirdTri');
var firstThreeMonthsButton = document.getElementById('firstThreeMonths');
var secondThreeMonthsButton = document.getElementById('secThreeMonths');
var thirdThreeMonthsButton = document.getElementById('thirdThreeMonths');
var fourthThreeMonthsButton = document.getElementById('fourthThreeMonths');
var toddlersButton = document.getElementById('toddlers');

var fTContent = document.getElementById('fTContent');
var sTContent = document.getElementById('sTContent');
var tTContent = document.getElementById('sTContent');
var firstTMContent = document.getElementById('sTContent');
var sTMContent = document.getElementById('sTContent');
var tTMContent = document.getElementById('sTContent');
var fourthTMContent = document.getElementById('sTContent');
var toddlersContent = document.getElementById('sTContent');

//event listeners
firstTrimesterButton.addEventListener("click", display(fTContent));
secondTrimesterButton.addEventListener("click",display(sTContent));
thirdTrimesterButton.addEventListener("click", display(tTContent));
firstThreeMonthsButton.addEventListener("click", display(firstTMContent) );
secondThreeMonthsButton.addEventListener("click", display(sTMContent));
thirdThreeMonthsButton.addEventListener("click", display(tTMContent));
fourthThreeMonthsButton.addEventListener("click",display(fourthTMContent));
toddlersButton.addEventListener("click",display(toddlersContent));

//function
function display(content) {
    content.style.display= 'inline';
}

最佳答案

您应该将对回调函数的引用放入您的addEventListener。如果您设置 display(fTContent) - 您只需运行此函数。 正确的触发是

firstTrimesterButton.addEventListener("click", function() {
    display(fTContent);
});

关于Javascript 函数在页面加载时触发,而不是在点击时触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41317671/

相关文章:

c# - MVC Url.Content 与 javascript 局部变量

html - 如何在html5中禁用dragend动画

javascript - 如何在不弄乱其余代码的情况下创建下拉菜单....?

javascript - 如何使用 JavaScript 设置带前缀的 CSS3 过渡效果?

javascript - 预加载图像的替代方法

javascript - 如何将 "arguments"对象转换为 JavaScript 中的数组?

html - 使用 html 图层调整 z-index

javascript - jQuery Tabs 使用 Mobify 在 Carousel 上激活

css - 与伪元素水平对齐

javascript - 获取异步函数的值,在 SAPUI5 中完成