它以var“el”的方式返回undefined,就像我拥有此代码一样
$('.element').each(function(){
var el = $(this);
setTimeout(function(el) {
el.css({ marginTop: -100 });
}, 550);
$(window).resize(function(el) {
setTimeout(function(el) {
el.css({ marginTop: -100 }); //this is where el is undefined
}, 550);
})
});
知道我做错了什么吗?
答案 0 :(得分:3)
我认为这是因为el
作为函数参数。尝试删除它们。
$('.element').each(function(){
var el = $(this);
setTimeout(function() {
el.css({ marginTop: -100 });
}, 550);
$(window).resize(function() {
setTimeout(function() {
el.css({ marginTop: -100 }); //this is where el is undefined
}, 550);
})
});
如果我错了,别忘了把我钉在十字架上:P
编辑:
只是为了解释发生了什么,function
中的resize
传递了一个event
对象,因此它会覆盖您设置的el
变量。 Event
不是jQuery
对象,因此您无法在其上调用css
函数。
答案 1 :(得分:0)
您传递到el
和setTimeout
事件的resize
参数是不必要的,
答案 2 :(得分:0)
你正在覆盖el
。试试这个:
$('.element').each(function(){
var el = $(this); // this var was overwritten...
setTimeout(function() { // here
console.log(el);
el.css({ marginTop: -100 });
}, 550);
$(window).resize(function() { // here
setTimeout(function() { // and here
el.css({ marginTop: -100 });
console.log(el);
}, 550);
})
});