gpt4 book ai didi

jquery - 如何将回调传递给 jQuery .click()?我需要回调吗?

转载 作者:行者123 更新时间:2023-12-01 04:17:41 25 4
gpt4 key购买 nike

我有一个点击事件,可根据下拉选择将用户带到某个 URL。但是,在重定向用户之前,我想调用标记脚本来捕获用户所做的选择。这是第三方脚本,因此我认为我遇到了一些计时问题。

这是我的代码:

$('#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 因为时间对我来说是任意的。我宁愿确保重定向始终等到标签被触发。

我想将回调函数传递给点击事件吗?或者我完全走错了路?对此问题的任何解决方案表示赞赏。谢谢!

最佳答案

您需要阻止默认操作:

$('#submitCity').click(function(event){
event.preventDefault();

但是,我建议不要以这种方式拦截点击事件,因为它会阻止用户在新窗口中打开链接(如果他们愿意)。最好将它们发送到进行跟踪的重定向页面。

关于jquery - 如何将回调传递给 jQuery .click()?我需要回调吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13463706/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com