Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/472.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 精简代码_Javascript_Jquery - Fatal编程技术网

Javascript 精简代码

Javascript 精简代码,javascript,jquery,Javascript,Jquery,我有一个关于简化jquery代码的问题。我有一个图像列表,每个图像都有一个唯一的id,单击事件显示较大的图像及其信息。有没有一种方法可以使用类似于php的foreach循环的循环来实现这一点 $(function() { $('img#cl_1').click(function() { $('div#left').html('display image').slideDown('fast'); $('div#right').html('display image info')

我有一个关于简化jquery代码的问题。我有一个图像列表,每个图像都有一个唯一的id,单击事件显示较大的图像及其信息。有没有一种方法可以使用类似于php的foreach循环的循环来实现这一点

$(function() {
  $('img#cl_1').click(function() {
    $('div#left').html('display image').slideDown('fast');
    $('div#right').html('display image info').slideDown('fast');
  });
  $('img#cl_2').click(function() {
    $('div#left').html('display image').slideDown('fast');
    $('div#right').html('display image info').slideDown('fast');
  });
  $('img#cl_3').click(function() {
    $('div#left').html('display image').slideDown('fast');
    $('div#right').html('display image info').slideDown('fast');
  });
  $('img#cl_4').click(function() {
    $('div#left').html('display image').slideDown('fast');
    $('div#right').html('display image info').slideDown('fast');
  });
  /*so on and so forth*/
});

如果“显示图像”和“显示图像信息”对于每个图像都是不同的值,请考虑将它们加载到一个数组中,或者通过Ajax获取它们。然后将事件绑定更改为如下所示:

$('img.showStuff').click(showDetails);  

function showDetails() {
   var id = this.id;
   $('div#left').html(images[id]).slideDown('fast');
   $('div#right').html(info[id]).slideDown('fast');
}
$(function() {
  $('img[id^="cl_"]').click(function() {
    $('div#left').html('display image').slideDown('fast');
    $('div#right').html('display image info').slideDown('fast');
  });
});

如果您不想使用类选择器,也可以使用如下内容:

$('img.showStuff').click(showDetails);  

function showDetails() {
   var id = this.id;
   $('div#left').html(images[id]).slideDown('fast');
   $('div#right').html(info[id]).slideDown('fast');
}
$(function() {
  $('img[id^="cl_"]').click(function() {
    $('div#left').html('display image').slideDown('fast');
    $('div#right').html('display image info').slideDown('fast');
  });
});
这应该适用于元素id以“cl_”开头的任何图像。 不过,类选择器显然更干净