我想跟蹤用戶何時使用Omniture的「自定義鏈接跟蹤」提交表單。該功能利用內置功能s.tl()
。一個典型的設置是這樣的:當點擊該鏈接例子(<a id="submit">
)時Omniture SiteCatlayst跟蹤:在使用jQuery從不帶綁定的單擊事件中調用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');
});
此代碼工作正常。再說了,相反,我們要調用一個函數來觸發鏈接跟蹤:
// 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對象?用類似$('a#submit')[0]
(嘗試將對象傳遞給它而不是this
)代替this
也會導致undefined
。我究竟做錯了什麼?
如果s變量定義之外$就法外$(文件)。就緒的語句,你可以使用它。而且我會將你的trackLink函數封裝在一個匿名函數中。並使用console.log! – machineaddict 2012-02-23 18:04:57