重复功能

时间:2013-05-13 09:25:04

标签: jquery

在编写简单的代码时,我似乎重复了很多函数,有没有更好的方法呢?

  $('#bt1').click(function() {
      $('#txt1').show();
      $(this).css("background-image", "url(site_images/08/btn_over.png)");  
}); 

  $('#bt2').click(function() {
      $('#txt2').show();
      $(this).css("background-image", "url(site_images/08/btn_over.png)");  
}); 

  $('#bt3').click(function() {
      $('#txt3').show();
      $(this).css("background-image", "url(site_images/08/btn_over.png)");  
}); 

  $('#bt4').click(function() {
      $('#txt4').show();
      $(this).css("background-image", "url(site_images/08/btn_over.png)");  
}); 

所以我不重复代码?

4 个答案:

答案 0 :(得分:6)

为您的按钮添加class,例如btn,然后您可以执行以下操作: -

$('.btn').click(function() {
  $('#' + this.id.replace('bt', 'txt')).show();
  $(this).css("background-image", "url(site_images/08/btn_over.png)"); 
});

答案 1 :(得分:3)

您可以尝试使用attribute Starts With Selector

$("[id^='bt']").click(function() {
      var number = $(this).prop('id').slice(-1);
      $('#txt' + number).show();
      $(this).css("background-image", "url(site_images/08/btn_over.png)");  
}); 

答案 2 :(得分:1)

这个怎么样,

$('#bt1,#bt2,#bt3,#bt4').click(function () {
    var number = this.id.replace( /^\D+/g, '');
    $('#txt'+number).show();
    $(this).css("background-image", "url(site_images/08/btn_over.png)");
});

注意:如果您可以为所有需要点击的项目添加一个类,那就更好了。然后选择器将更改为类名。其余代码相同

答案 3 :(得分:0)

使用Multiple Selector

$('#bt1, #bt2, #bt3, #bt4').click(function () {
    var number = this.id.replace( /^\D+/g, '');
    $('#txt'+number).show();
    $(this).css("background-image", "url(site_images/08/btn_over.png)");
});

您也可以。add()选择器:How to combine two jQuery results