2013-08-21 63 views
0

我需要找出哪些元素,特定的類,引發了jquery回調。例如,如果我有這個jquery:

$('#content').delegate('.role', 'change', function(e){ 
    if($(this).val() == 'Student'){ 
     $('.roleStudent').show(); 
     $('.roleTeacher').hide(); 
    }else if($(this).val() == 'Teacher'){ 
     $('.roleTeacher').show(); 
     $('.roleStudent').hide(); 
    }else if($(this).val() == 'User'){ 
     $('.roleTeacher').hide(); 
     $('.roleStudent').hide(); 
    } 
    }); 

,我需要創建一個骨幹事件。它必須尋找某種這樣的:

events: { 
    'change .role' : changeRole 
} 

和內部changeRole functioin需要找出來,有什麼用類.role是改變選擇,這樣我就可以建立我的發言像這樣:

 if($(this).val() == 'Student'){ 
      $('.roleStudent').show(); 
      $('.roleTeacher').hide(); 
     }else if($(this).val() == 'Teacher'){ 
      $('.roleTeacher').show(); 
      $('.roleStudent').hide(); 
     }else if($(this).val() == 'User'){ 
      $('.roleTeacher').hide(); 
      $('.roleStudent').hide(); 
     } 

謝謝你都有任何建議。

回答

2

骨幹提供了一個事件,作爲這類任務的第一個參數:

changeRole : function (e) { 
    var value = e.currentTarget.value; 
} 

而且currentTarget這個事件的性質是你是正在尋找的元素。

+0

優秀,這個偉大的工程!謝謝 –

1

嘗試這樣:

changeRole: function(event){ 
    var val = this.$(event.currentTarget).val(); 
    switch(val){ 
     case 'Student': 
      $('.roleStudent').show(); 
      $('.roleTeacher').hide(); 
      break; 
     case 'Teacher': 
      $('.roleTeacher').show(); 
      $('.roleStudent').hide(); 
      break; 
     case 'User': 
      $('.roleTeacher').hide(); 
      $('.roleStudent').hide(); 
      break; 
    } 
} 
+0

謝謝你的幫助,但Vitaliy是第一個)) –

+1

很高興我可以幫助 –