我有2个单击事件,它们经历了一系列不同的动作,尽管这2个事件之间唯一的不同是2行。有没有一种方法可以组合这些点击,以减少使用的代码量?
$('a.register').click(function() {
$('h4#registerHead').addClass('active');
$('#registerMessage').show();
$('#nav li span a').css({'color':'#8F8F8F'});
$('#alertNav').css({'color':'#dedede'}).addClass('activeSub');
});
$('a.subscribe').click(function() {
$('h4#subscribeHead').addClass('active');
$('#subscribeMessage').show();
$('#nav li span a').css({'color':'#8F8F8F'});
$('#alertNav').css({'color':'#dedede'}).addClass('activeSub');
});
欢迎对此提出所有建议,谢谢。
最佳答案
第一种方式:
var doIt = function(event){
$("h4#"+event.data.type+"Head").addClass('active');
$("#"+event.data.type+"Message").show();
$('#nav li span a').css({'color':'#8F8F8F'});
$('#alertNav').css({'color':'#dedede'}).addClass('activeSub');
};
$('a.register').bind('click', {type: 'register'}, doIt);
$('a.subscribe').bind('click', {type: 'subscribe', doIt});
第二种方式:
var commonHandler = function(){
$('#nav li span a').css({'color':'#8F8F8F'});
$('#alertNav').css({'color':'#dedede'}).addClass('activeSub');
};
$('a.register').click(function() {
$('h4#registerHead').addClass('active');
$('#registerMessage').show();
commonHandler();
});
$('a.subscribe').click(function() {
$('h4#subscribeHead').addClass('active');
$('#subscribeMessage').show();
commonHandler();
});
关于javascript - 结合类似的点击处理程序,以减少在jQuery中使用的代码?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8125368/