【发布时间】:2020-07-09 18:57:48
【问题描述】:
我使用jQuery获取页面加载时div的高度#img-copyright,写入var copyrightHeight并将div的高度设置为0。
当点击不同的 div 时,function showImgCopyright() 应该将 div #img-copyright 的最大高度设置为 var 的内容。
我试了两次。
第一个:
var copyrightHeight;
$(document).ready(function () {
copyrightHeight = $("#img-copyright").height();
console.log(copyrightHeight);
// just used to see if the height got written in the var - it is
$("img-copyright").css("max-height", 0);
$("#show-img-copyright").click(showImgCopyright());
function showImgCopyright() {
$("#img-copyright").css("max-height", copyrightHeight);
}
});
第二个:
var copyrightHeight;
$(document).ready(function () {
copyrightHeight = $("#img-copyright").height();
console.log(copyrightHeight);
// just used to see if the height got written in the var - it is
$("img-copyright").css("max-height", 0);
$("#show-img-copyright").click(function (){
$("#img-copyright").css("max-height", copyrightHeight);
});
});
在第一个示例中,该函数在页面加载后直接执行,而不是在单击 div 时执行(不是我想要的方式)。 在第二个示例中,它按我的意愿工作——该函数只是在单击 div 时执行。 但我不明白为什么。
如何使它与第一个示例中的额外功能一起使用?
【问题讨论】:
-
将命名函数传递给事件处理程序时,您希望省略括号,因此
click(showImgCopyright());应该是click(showImgCopyright);。通过附加括号,您实际上只是在运行函数。
标签: javascript jquery