可重用Jquery函数问题
在看到一些重复之后,我试图优化我的代码 代码如下:可重用Jquery函数问题,jquery,jquery-ui,function,Jquery,Jquery Ui,Function,在看到一些重复之后,我试图优化我的代码 代码如下: function show($div, $change, $value){ var $container = "#" + $div; var $class = $div + "-" + "hidden"; //alert($class + $container + $change + $value); $($container).addClass($class); $($container).anim
function show($div, $change, $value){
var $container = "#" + $div;
var $class = $div + "-" + "hidden";
//alert($class + $container + $change + $value);
$($container).addClass($class);
$($container).animate({
$change: $value
}, 1000, function(){
$($container).removeClass($class);
}
);
}
show('header', 'top', '0');
show('nav', 'left', '0');
show('wrapper', 'opacity', '0');
这个区域:$change:$value-就是我在脚本中遇到问题的地方。我能做这个吗?它们应该以字符串的形式出现吗?我认为您正在尝试以文本的形式动态设置变量名。在JavaScript中,您可以这样做
objectname[“variablename”]=value
function show($div, $change, $value){
var $container = "#" + $div;
var $class = $div + "-" + "hidden";
//alert($class + $container + $change + $value);
$($container).addClass($class);
var animation = {}; // create another object
animation[$change] = $value; // and set its property
$($container).animate(animation, 1000, function(){
$($container).removeClass($class);
}
);
}
实际上,您可以在这里做两件事:
function show($div, $change, $value){
var $container = "#" + $div;
var $class = $div + "-" + "hidden";
//alert($class + $container + $change + $value);
var animation = {}; //declare a literal
animation[$change] = $value; //create a name-value pair based on args
var jqContainer = $($container); //extract multiple jQuery evaluations
jqContainer.addClass($class);
jqContainer.animate(animation, 1000, function(){
jqContainer.removeClass($class);
}
);
}
我认为您正在尝试在文本中动态设置变量名。在JavaScript中,您可以这样做
objectname[“variablename”]=value
实际上,您可以在这里做两件事:
function show($div, $change, $value){
var $container = "#" + $div;
var $class = $div + "-" + "hidden";
//alert($class + $container + $change + $value);
var animation = {}; //declare a literal
animation[$change] = $value; //create a name-value pair based on args
var jqContainer = $($container); //extract multiple jQuery evaluations
jqContainer.addClass($class);
jqContainer.animate(animation, 1000, function(){
jqContainer.removeClass($class);
}
);
}
天啊,我刚刚注意到启动变量的$是多么混乱。刚从菲律宾来,所以有点困在那里。。。我试试看。您能否解释动画对象以及如何设置属性。我不太明白。@user980988:它只是一个普通的javascript对象
var foo={}代码>天啊,我刚刚注意到启动变量的$有多混乱。刚从菲律宾来,所以有点困在那里。。。我试试看。您能否解释动画对象以及如何设置属性。我不太明白。@user980988:它只是一个普通的javascript对象var foo={}代码>