Javascript preventDefault停止window.location.href的工作
我的网站上有两个广告,其中一个使用脚本解析网站上的所有链接,并在其上执行Javascript preventDefault停止window.location.href的工作,javascript,jquery-ui,jquery-ui-autocomplete,preventdefault,Javascript,Jquery Ui,Jquery Ui Autocomplete,Preventdefault,我的网站上有两个广告,其中一个使用脚本解析网站上的所有链接,并在其上执行preventDefault()。。。这使得我无法在任何链接上使用preventDefault(),因为它只能执行一次。。。然而,在过去,我可以使用returnfalse来解决这个问题。由于某些原因,它不能与jQueryUIAutoComplete函数一起工作(请参见下面的代码) 如果我关掉广告,剧本就可以了。否则它只是重新加载页面,因为返回false似乎不起作用 脚本I无法更改: $(document).ready(fun
preventDefault()
。。。这使得我无法在任何链接上使用preventDefault(),因为它只能执行一次。。。然而,在过去,我可以使用returnfalse
来解决这个问题。由于某些原因,它不能与jQueryUIAutoComplete函数一起工作(请参见下面的代码)
如果我关掉广告,剧本就可以了。否则它只是重新加载页面,因为返回false代码>似乎不起作用
脚本I无法更改:
$(document).ready(function() {
$('a').on('click', function(e) {
e.preventDefault();
// stuff
});
)};
我的脚本:
$search.autocomplete({
source: function(request, response){
$url = "suggestions/";
$.get($url, {data:request.term}, function(data){
response($.map(data, function(item) {
return {
label: item.movie_name,
id: item.movie_id
}
}))
}, "json");
},
minLength: 2,
dataType: "json",
cache: true,
focus: function(event, ui) {
return false;
},
select: function(event, ui) {
window.location.href = ('/id/'+ ui.item.id +'/'+ ui.item.label +'/');
return false;
}
});
我找到了一个有效的解决方案:
select: function(event, ui) {
$('.ui-autocomplete a').attr('href', '/id/'+ ui.item.id +'/'+ ui.item.label +'/');
}
解释:
jquery ui autocomplete函数创建一个链接列表()-标记,通常您会使用preventDefault()
来阻止浏览器进入href地址,因为在我的情况下,这是不可能的,我尝试使用return false
来代替,但在这种情况下,这也不起作用,为什么不改为将链接标签href更改为正确的url,而不停止该操作呢 此代码的行为是什么?您的预期行为是什么<代码>返回false
与e.preventDefualt()具有相同的效果;e、 cancelBubble()
,这是否解释了您看到的内容?请参阅我的编辑,我的目的是重定向到perm链接。。但返回错误;我不明白,return false
不应该阻止重定向。你是说你的select回调没有被调用吗?autocomplete
是否处理a
元素?jquery ui autocomplete函数创建一个链接列表()-标记,通常您会使用preventDefault()
阻止浏览器进入href地址,因为在我的情况下,这是不可能的,我尝试使用return false
,但是在这种情况下,这也不起作用,所以我最终想,为什么不将链接标签href改为正确的url,而不是停止该操作呢!链接标签列表就是建议