javascript - 结合类似的点击处理程序以减少 jquery 中使用的代码?

标签 javascript jquery

我有 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/

相关文章:

javascript - p2.js 物体穿过其他物体

javascript - 如何将消息从 node.js 服务器发送到 Android 应用程序?

javascript - react native : How to parse an ics/ical file

javascript - Google "reCaptcha"有时无法显示/呈现

jquery - 使用 jquery 停止默认主题标签行为

javascript - 为具有动态列的数据表动态且正确地添加相同类型的行?

javascript - 在javascript中从对象数组中提取两个数组的最快方法

javascript - 更改背景图像脚本的错误日志,Google Chrome

javascript - 将动态 javascript 值设置为带有总和的 html 文本输入

javascript - 带有选项和可访问方法的 jQuery 插件模板?