2012-02-15 42 views
1

我有4个点击事件,使用几乎相同的跟踪代码,所以我认为这段代码会更好地驻留在一个函数中,但我想知道的是,但我如何设置某些不同于事件的值?我是否需要将参数传递到具有该值的新函数中?将类似的点击事件动作转换为函数?

我的单击事件的代码是:

$('a.close', '#contents').on('click', function(){ 
    s=s_gi('myapp'); 
    s.linkTrackVars="None"; 
    s.linkTrackEvents="None"; 
    s.tl(this,'o','myapp_fb:new_story:a'); 
}); 

$('a.next', '#contents').on('click', function(){ 
    s=s_gi('myapp'); 
    s.linkTrackVars="None"; 
    s.linkTrackEvents="None"; 
    s.tl(this,'o','myapp_fb:new_story:b'); 
}); 

$('a.prev', '#contents').on('click', function(){ 
    s=s_gi('myapp'); 
    s.linkTrackVars="None"; 
    s.linkTrackEvents="None"; 
    s.tl(this,'o','myapp_fb:new_story:c'); 
}): 

$('a.share', '#contents').on('click', function(){ 
    s=s_gi('myapp'); 
    s.linkTrackVars="None"; 
    s.linkTrackEvents="None"; 
    s.tl(this,'o','myapp_fb:new_story:d'); 
}); 
+0

其中的's'来自哪里? – 2012-02-15 14:29:51

+0

s来自omniture提供的单独的js文件 – styler 2012-02-15 14:34:46

回答

2

你可以做这样的事情:

var clickHandler = function(value) { 
    s=s_gi('myapp'); 
    s.linkTrackVars="None"; 
    s.linkTrackEvents="None"; 
    s.tl(this,'o',value); 
} 

$('a.close', '#contents').on('click', function(){ 
    clickHandler('myapp_fb:new_story:a'); 
}); 
+0

我打算去jQuery插件路线,但这是一个完全合理的重构。 – 2012-02-15 14:33:17