2
我有一個點擊事件,使用戶根據下拉選擇的URL。但是,在重定向用戶之前,我想調用標記腳本來捕獲用戶所做的選擇。這是第三方腳本,所以我認爲我遇到了一些計時問題。如何將回調傳遞給jQuery .click()?即使我需要什麼回調?
這裏是我的代碼:
$('#submitCity').click(function(){
//trigger tags
var countrySelected = $country.val();
var citySelected = $city.val();
s.linkTrackVars='prop3,prop4,eVar3,eVar4,eVar6';
s.prop3 = 'Visitor Action';
s.prop4 = 'Home City Selected - ' + countrySelected + ', ' + citySelected;
s.eVar3 = 'Visitor Action';
s.eVar4 = 'Home City Selected - ' + countrySelected + ', ' + citySelected;
s.tl(this,'o','Home City Selected - ' + countrySelected + ', ' + citySelected);
//Link to appropriate city
setTimeout(function() {
location.href = "http://www.someURL.com/" + citySelected;
}, 1000);
});
大約一半一切正常的時間。該標籤被捕獲並且用戶被成功重定向。但是,另一半時間點擊事件會引發錯誤,因爲對象「s」未定義。我假設這是由於定時問題,其中location.href在定義「s」對象之前觸發。
我的問題是,我是否想創建一個回調,以便location.href不會發生,直到設置標籤後?我不喜歡使用setTimeout,因爲時間對我來說是任意的。我寧願確保重定向始終等待,直到標籤被觸發。
我想將回調函數傳遞給click事件嗎?或者我完全在錯誤的軌道上?任何解決這個問題的方法都會受到讚賞謝謝!
在哪裏定義? – jtheman
「s」在第三方標記腳本中定義。所以我想我真正需要的是等待外部腳本完全加載。 –