Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/459.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我怎样才能使这个重复的jQuery变得不那么复杂呢?_Javascript_Jquery_Optimization - Fatal编程技术网

Javascript 我怎样才能使这个重复的jQuery变得不那么复杂呢?

Javascript 我怎样才能使这个重复的jQuery变得不那么复杂呢?,javascript,jquery,optimization,Javascript,Jquery,Optimization,我有4个jQuery块,如下所示: $('#aSplashBtn1').click(function(){ $('#divSliderContent div').hide(); $('#divSplash1').fadeIn('slow'); return false; }); $('#aSplashBtn2').click(function(){ $('#divSliderContent div').hide(); $('#divSplash2').fadeIn('slow

我有4个jQuery块,如下所示:

$('#aSplashBtn1').click(function(){
  $('#divSliderContent div').hide();
  $('#divSplash1').fadeIn('slow');
  return false;
});
$('#aSplashBtn2').click(function(){
  $('#divSliderContent div').hide();
  $('#divSplash2').fadeIn('slow');
  return false;
});
$('#aSplashBtn3').click(function(){
  $('#divSliderContent div').hide();
  $('#divSplash3').fadeIn('slow');
  return false;
});
$('#aSplashBtn4').click(function(){
  $('#divSliderContent div').hide();
  $('#divSplash4').fadeIn('slow');
  return false;
});
我已经尝试学习了更多关于javascript数组和for循环的知识,但是当我尝试将其实现到这段代码中时,它只适用于数字1块。有人能告诉我他们将如何实现优化吗

变化

这将设置一个单独的处理程序,该处理程序将使用以
aSplashBtn
开头的
id
匹配每个元素。您的id可以达到您想要的最高值(即
#aSpashBtn100
),并且它仍然会与正确的
div#divSplash100
配对

另外,我将
#divSliderContent div
缓存在它自己的变量中,因为您不希望jQuery在每次单击时再次“查找”

这将设置一个单独的处理程序,该处理程序将使用以
aSplashBtn
开头的
id
匹配每个元素。您的id可以达到您想要的最高值(即
#aSpashBtn100
),并且它仍然会与正确的
div#divSplash100
配对


另外,我将
#divSliderContent div
缓存在它自己的变量中,因为您不希望jQuery在每次单击时再次“查找它”。

如果可单击的项目是同级项,您可以执行以下操作:

$('#aSplashBtn1').siblings().andSelf().click(function(e){
    $('#divSliderContent div').hide();
    $('#divSplash'+e.target.id.substr(e.target.id.length-1)).fadeIn('slow');
    e.preventDefault();
});

如果可单击的项目是同级项目,则可以执行以下操作:

$('#aSplashBtn1').siblings().andSelf().click(function(e){
    $('#divSliderContent div').hide();
    $('#divSplash'+e.target.id.substr(e.target.id.length-1)).fadeIn('slow');
    e.preventDefault();
});

#aSplashBtn4在哪里实现到#divSplash4?不仅仅是
for(var i=1;i<5;i++)
work?你能发布一个你的标记示例吗?在哪里实现到#divSplash4?不仅仅是
for(var i=1;i<5;i++)
work您是否也希望接受匿名函数上的
e
参数并运行
e.preventDefault()以防止页面跳转?(我假设asplashbtn是
a
tags)很好,我只是输入
returnfalse虽然要使其与OPYes等效,这更好-使用此选项!:)您是否也希望接受匿名函数上的
e
参数并运行
e.preventDefault()以防止页面跳转?(我假设asplashbtn是
a
tags)很好,我只是输入
returnfalse尽管,以使其与OP等效
$('#aSplashBtn1').siblings().andSelf().click(function(e){
    $('#divSliderContent div').hide();
    $('#divSplash'+e.target.id.substr(e.target.id.length-1)).fadeIn('slow');
    e.preventDefault();
});