2012-02-15 3 views
1

У меня есть события с четырьмя нажатиями, которые используют почти тот же код отслеживания, поэтому я думаю, что этот код будет лучше жить в функции, но мне хотелось бы знать, как установить определенные значения, отличные от события к событию ? Нужно ли передавать параметры в новую функцию, которая принимает значение?преобразование подобных действий события click в функцию?

Мой клик код события:

$('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' приходит? –

+0

s поступает из отдельного файла js, предоставленного omniture – styler

ответ

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-плагина, но это вполне разумный рефактор. –

Смежные вопросы