Я хочу отслеживать, когда пользователь отправляет форму, используя «Отслеживание пользовательских ссылок» Omniture. Эта функция использует встроенную функцию s.tl()
. Типичная установка выглядит так:
$('a#submit').click(function () {
s.trackExternalLinks = false;
s.linkTrackVars = 'events,prop1';
s.linkTrackEvents = s.events = 'event1';
s.prop1 = s.pageName;
s.tl(this, 'o', 'Form Submitted');
});
Этот код отлично работает, когда нажата ссылка примера (<a id="submit">
). Скажем, вместо этого мы хотим вызвать функцию для запуска отслеживания ссылок:
// function to track custom link
var trackLink = function() {
s.trackExternalLinks = false;
s.linkTrackVars = 'events,prop1';
s.linkTrackEvents = s.events = 'event1';
s.prop1 = s.pageName;
s.tl(this, 'o', 'Form Submitted');
};
// Form Submission code calls trackLink()
$.ajax({
type: 'POST',
url: submit.php,
data: [data],
success: trackLink()
});
Вызов trackLink()
приводит к undefined
, предположительно потому, что this
в s.tl()
больше не указывает на объект DOM? Замена this
чем-то вроде $('a#submit')[0]
(попытка передать ему объект вместо this
) также приводит к undefined
. Что я делаю не так?