是否有必要在已更改的变量上更新函数?我不知道如何正确解释这一点,但我会在下文中尽力而为。
我有一个 .click() 函数,如果文档准备就绪,它会被初始化。此函数内部是一个 .animate() 函数,它使用变量(var content)作为选择器。如果文档准备就绪,也会定义此变量。 (下面是代码的简化版本)
$('.selector').click(function () {
$(content).animate({
scrollTop: target.offset().top
}, 1000);
return false;
});
但是这个变量根据视口(viewport)宽度在两个值之间变化。 (下面是代码的简化版本)
if(viewportWidth < 768){
content = $('.content-wrap');
}else{
content = $('html, body');
}
因此,如果变量值发生变化,我是否必须更新或重新初始化我的函数? 因为它不适用于其中一个选择器。
感谢您的帮助或任何值得深思的问题。 :)
=============更新=============
好吧,它仍然没有像预期的那样工作。
$(content).scroll(function() {
console.log($(this));
}
如果变量(内容)的值发生变化,这将不起作用。如果文档准备就绪,它仅适用于为此变量设置的值。
最佳答案
您不必在函数中更改任何内容,因为 content
的值将在 click
事件发生时读取。
只要 content
变量在代码库的两个位置的范围内定义,您所拥有的就绝对可以正常工作。
你应该注意到 content
本身将是一个 jQuery 对象,所以你不需要在点击处理程序中再次包装它;只需 content.animate({...
就可以正常工作。
关于javascript - 更新函数是因为变量值改变了吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45058485/