我需要找出触发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
内部需要找出,类.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();
}
谢谢大家的任何建议。
答案 0 :(得分:2)
Backbone提供了一个事件作为此类任务的第一个参数:
changeRole : function (e) {
var value = e.currentTarget.value;
}
此事件的currentTarget
属性是您要查找的元素。
答案 1 :(得分: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;
}
}