函数
有人能解释为什么我的代码不起作用吗?我只是想提取一个函数:
$(document).ready(function(){
$('section.bgParallax').each(function(){
var $obj = $(this);
$(window).scroll(function() {
var yPos = -($(window).scrollTop() / $obj.data('speed'));
var bgpos = '50% '+ yPos + 'px';
$obj.css('background-position', bgpos );
});
});
这不起作用:
$(document).ready(function(){
var doScroll = function($div) {
var yPos = -($(window).scrollTop() / $div.data('speed'));
var bgpos = '50% '+ yPos + 'px';
$div.css('background-position', bgpos );
};
$('section.bgParallax').each(function(){
var $obj = $(this);
$(window).scroll(doScroll($obj));
});
});
我只是试图提取函数,但在滚动时没有调用我的函数。
$(window).scroll
必须是接收函数作为参数的事件。
它不起作用,因为您正在调用函数doScroll
并将其返回值作为参数传递给$(window).scroll
。你应该通过你的doScroll功能:
$(window).scroll(doScroll);
但由于您需要将参数传递给它,因此可以将其封装在一个匿名函数中:
$(window).scroll(function(){
doScroll($obj);
});