是否需要更新已更改变量的函数?我不知道如何正确解释这个问题,但我会在下面尝试一下。
我有一个.click()函数,如果文档准备就会初始化。此函数内部是一个.animate()函数,它使用变量(var content)作为选择器。如果文档准备就绪,也会定义此变量。 (下面你看到一个简单的代码版本)
$('.selector').click(function () {
$(content).animate({
scrollTop: target.offset().top
}, 1000);
return false;
});
但是此变量根据视口宽度在两个值之间变化。 (下面你看到一个简单的代码版本)
if(viewportWidth < 768){
content = $('.content-wrap');
}else{
content = $('html, body');
}
因此,如果变量值发生变化,我是否必须更新或重新初始化我的函数? 因为它不适用于其中一个选择器。
感谢任何帮助或任何思考的食物。 :)
============= UPDATE =============
哦,它仍然没有像预期的那样发挥作用。
$(content).scroll(function() {
console.log($(this));
}
如果变量(内容)的值发生变化,则不起作用。它仅适用于文档准备就绪时为此变量设置的值。
答案 0 :(得分:1)
您不必更改函数中的任何内容,因为content
事件发生时将会读取click
的值。
只要content
变量在代码库中的两个位置范围内定义,您所拥有的内容就绝对合适。
您应该注意content
本身将是一个jQuery对象,因此您不需要在单击处理程序中再次包装它;只需content.animate({...
即可。
答案 1 :(得分:0)
您已经将变量定义为选择器,因此无需编写$(内容),您可以在代码下面编写以正确执行。
if(viewportWidth < 768){
content = $('.content-wrap');
content.animate({scrollTop: target.offset().top}, 1000);
}else{
content = $('html, body');
content.animate({scrollTop: target.offset().top}, 1000);
}