我在代码中重复了$("#id").addClass('disabled');
和$("#li-hzd").removeClass('disabled');
的代码,用于多个函数中的多个ID。所以我试着写一些类似的通用例程,
function toggleClass(id,classname,action){
$("#"+ id") +"." + classname+"("+action+")
}
可以称为
toggleClass(id,'addClass','disabled');
toggleClass(id,'removeClass','disabled');
我相信可以使用eval()完成某些事情,但我也读过使用eval的不良做法。那么任何想法如何实现?
答案 0 :(得分:2)
您还可以使用bracket notation获取jQuery方法。
function toggleClass(id, action, classname){
$("#"+ id)[action](classname)
}
toggleClass(id,'addClass','disabled');
toggleClass(id,'removeClass','disabled');
答案 1 :(得分:0)
您可以通过bracket notation []
访问对象属性:
function toggleClass(id, classname, action) {
$("#" + id)[classname](action)
}
旁注:您似乎已将参数classname
和action
命名为错误。应该反过来更有意义!函数名称应为action
,类名应为classname
。 : - )
答案 2 :(得分:0)
不使用addClass和removeClass,而是使用toggleClass,如果不存在则添加类名,否则将其删除
所以将你的toggleclass方法更改为以下
function toggleClass(id,classname){
$("#"+ id).toggleClass(classname)
}