0

我有这个代码工作,但希望有它,所以当我添加更多表格时,我不必继续添加所有这些部分和格式。

请参阅此处的示例:http: //jsfiddle.net/QtMK2/120/ 我希望单击和切换功能完全按照示例中的方式执行。

我只是希望能够拥有它,这样当我添加更多表时,我不必继续为每个新表添加所有功能。

那么有没有办法做到这一点,所以它使用 (this) 变量只作用于该表?

-JQuery

$(document).ready(function(){   
var clicked1 = false; //Used tp keep tr from closing
var clicked2 = false; //Used to Keep tr from closing

//Table1 Hover
$('.ActiveDeMolayTableAwards1 th.AwardsDeMolayHead1') .hover(function(){
if(!clicked1) {                
 $('.ActiveDeMolayTableAwards1 tr.AwardsDeMolayBody1').toggle();         
}});
 //Table2 Hover 
$('.ActiveDeMolayTableAwards2 th.AwardsDeMolayHead2') .hover(function(){         
if(!clicked2) {         
  $('.ActiveDeMolayTableAwards2 tr.AwardsDeMolayBody2').toggle();         
}});

 //Table1 Click    
 $('.ActiveDeMolayTableAwards1 th.AwardsDeMolayHead1').click(function(){         
        if(!clicked1) {return clicked1 = true;  
                      $('.ActiveDeMolayTableAwards1 tr.AwardsDeMolayBody1').show(); }
          if(clicked1) {return clicked1 = false;  
                      $('.ActiveDeMolayTableAwards1 tr.AwardsDeMolayBody1').hide(); }
});

  //Table2 Click 
  $('.ActiveDeMolayTableAwards2 th.AwardsDeMolayHead2').click(function(){         
        if(!clicked2) {return clicked2 = true;  
                      $('.ActiveDeMolayTableAwards2 tr.AwardsDeMolayBody2').show(); }
          if(clicked2) {return clicked2 = false;  
                      $('.ActiveDeMolayTableAwards2 tr.AwardsDeMolayBody2').hide(); }
 });       


//LOAD CLOSED

$('.ActiveDeMolayTableAwards1 tr.AwardsDeMolayBody1')  .hide();

$('.ActiveDeMolayTableAwards2 tr.AwardsDeMolayBody2')  .hide();
 }); 
4

2 回答 2

0

使所有表格元素同一个类。并在每个范围内进行操作。这里我使用了一个“stayOn”类来跟踪“点击状态”

http://jsfiddle.net/Et6XX/

于 2012-05-18T20:00:02.747 回答
0

对不起,我的时间不多,而且是从头开始做的。但是,您不能一一指定每个表,而是将它们全部引用,然后在函数中引用 $(this) 吗?例如,制作这样的选择器:

$('table[class^="ActiveDeMolayTableAwards"] th[class^="AwardsDeMolayHead"]')

例如,选择所有类以“ActiveDeMolayTableAwards”开头的表。

另一件事是使用 .live() 函数而不是 document.ready() 函数,因为 live() 将对动态添加的表做出反应并包括它们。

于 2012-05-18T19:56:33.467 回答