JQuery 使用单个函数而不是多个
JQuery using single function instead of multiple
您好,我想简化这 4 个类似的功能。最后只有选择器在改变。请问我该如何进行?非常感谢!
$('.box.standard .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.standard .title').outerWidth()/2,
'margin-top' : -$('.box.standard .title').outerHeight()/2
});
$('.box.large .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.large .title').outerWidth()/2,
'margin-top' : -$('.box.large .title').outerHeight()/2
});
$('.box.wide .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.wide .title').outerWidth()/2,
'margin-top' : -$('.box.wide .title').outerHeight()/2
});
尝试:
var myArray = ['.box.standard', '.box.large', '.box.wide'];
for (var i of myArray) {
$(i+' .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$(i+' .title').outerWidth()/2,
'margin-top' : -$(i+' .title').outerHeight()/2
});
}
把它变成一个函数,随时使用它:
function myFunction(cssClasses){
$(cssClasses).css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.wide .title').outerWidth()/2,
'margin-top' : -$('.box.wide .title').outerHeight()/2
});
}
myFunction('.box.standard .title');
myFunction('.box.large .title');
myFunction('.box.wide .title');
您可以使用一个函数来帮助您访问 this
,它引用所选的元素。应该这样做:
$('.box.standard .title, .box.large .title, .box.wide .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : function() {
return -$(this).outerWidth()/2;
},
'margin-top' : function() {
return -$(this).outerHeight()/2;
}
});
您好,我想简化这 4 个类似的功能。最后只有选择器在改变。请问我该如何进行?非常感谢!
$('.box.standard .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.standard .title').outerWidth()/2,
'margin-top' : -$('.box.standard .title').outerHeight()/2
});
$('.box.large .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.large .title').outerWidth()/2,
'margin-top' : -$('.box.large .title').outerHeight()/2
});
$('.box.wide .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.wide .title').outerWidth()/2,
'margin-top' : -$('.box.wide .title').outerHeight()/2
});
尝试:
var myArray = ['.box.standard', '.box.large', '.box.wide'];
for (var i of myArray) {
$(i+' .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$(i+' .title').outerWidth()/2,
'margin-top' : -$(i+' .title').outerHeight()/2
});
}
把它变成一个函数,随时使用它:
function myFunction(cssClasses){
$(cssClasses).css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : -$('.box.wide .title').outerWidth()/2,
'margin-top' : -$('.box.wide .title').outerHeight()/2
});
}
myFunction('.box.standard .title');
myFunction('.box.large .title');
myFunction('.box.wide .title');
您可以使用一个函数来帮助您访问 this
,它引用所选的元素。应该这样做:
$('.box.standard .title, .box.large .title, .box.wide .title').css({
'position' : 'absolute',
'left' : '50%',
'top' : '50%',
'margin-left' : function() {
return -$(this).outerWidth()/2;
},
'margin-top' : function() {
return -$(this).outerHeight()/2;
}
});