我有这个问题,我找不到任何激进的答案......
那么,有没有可能用 jQuery 将两个变量设置为一个,像这样:
var $self = {
car_img_stage: $('.car_img_stage'),
vis_home: $('#vis_home')
}
然后像这样使用:
$self.animate({
'margin-left': '-1200px'
}, 600)
谢谢帮助。
我有这个问题,我找不到任何激进的答案......
那么,有没有可能用 jQuery 将两个变量设置为一个,像这样:
var $self = {
car_img_stage: $('.car_img_stage'),
vis_home: $('#vis_home')
}
然后像这样使用:
$self.animate({
'margin-left': '-1200px'
}, 600)
谢谢帮助。
您可以创建一个应该完成相同事情的组合选择器:
$self = $('.car_img_stage,#vis_home');
有几种方法可以做到这一点 -
$self = $('.car_img_stage,#vis_home');
//basic use
$self = $('.car_img_stage').add('#vis_home');
它们的动画方式相同:
$self.animate({
'margin-left': -1200
}, 600);
如果您想缓存选择器并稍后单独使用它们,添加也很有用。
//cached selectors
$car_img = $('.car_img_stage');
$vis_home = $('#vis_home');
$self = $car_img.add($vis_home);
$car_img.animate({
'color': 'red'
}, 600);
$vis_home.animate({
'height': 200
}, 600);
$self.animate({
'margin-left': -1200
}, 600);
你也可以让你的选择器保持原样并循环遍历它。不推荐这种方式,但在技术上可行。
var $self = {
car_img_stage: $('.car_img_stage'),
vis_home: $('#vis_home')
}
for (var each in $self){
$self[each].animate({
'margin-left': -1200
}, 600);
}
下一个注释与原始问题无关,但在处理多个选择器的动画时要记住这一点。
请注意,在为多个选择器设置动画时,附加的任何回调都将为每个 ANIMATED 项目触发。当说,淡出链接列表(而不是包含它们的包装器)或类似的东西时,这是相关的。为避免此问题,您可以使用promise,如下所示:
$self = $('.car_img_stage,#vis_home');
$self.animate({
'margin-left': -1200
}, 600, function(){
//callback code here to happen for every animated element.
}).promise().done(function(){
//callback code here, to happen once when ALL animations are complete.
});
您可以省略这些回调函数中的一个或两个:
只是一个回调:
$self.animate({
'margin-left': -1200
}, 600, function(){
//callback code here to happen for every animated element.
});
只是一个承诺:
$self.animate({
'margin-left': -1200
}, 600).promise().done(function(){
//callback code here, to happen once when ALL animations are complete.
});
你可以这样做:
var some_things = $('.car_img_stage, #vis_home');
some_things.animate({
'margin-left': '-1200px'
}, 600)
作为我的附加回答,我找到了其他解决方案,而且它的工作。
var car_img_stage = $('.car_img_stage'),
vis_home = $('#vis_home');
var self = jQuery.makeArray(vis_home,car_img_stage);
和行动
self.animate({
// some animate action
}, 600);