Javascript 为什么preventDefault不起作用但返回false起作用
有人知道为什么我的默认代码不起作用吗?返回错误返回很好,但据我所知,这不是真正的“正确”方式Javascript 为什么preventDefault不起作用但返回false起作用,javascript,html,ajax,jquery,Javascript,Html,Ajax,Jquery,有人知道为什么我的默认代码不起作用吗?返回错误返回很好,但据我所知,这不是真正的“正确”方式 if ($('.signup').length == 0) { $('.star').on('click',function(e){ e.preventDefault(); var starElement = $(this); var resourceId = starElement.parents('li').d
if ($('.signup').length == 0) {
$('.star').on('click',function(e){
e.preventDefault();
var starElement = $(this);
var resourceId = starElement.parents('li').data('id');
updateFavoritesSpan( starElement, starElement.hasClass('starred') );
starElement.toggleClass('starred');
starElement.parents('li').toggleClass('fvtd');
});
// voting
$('.voting').on('click .up', function(e){
e.preventDefault();
sendVote($(this), 1);
});
$('.voting').on('click', '.down', function(e){
e.preventDefault();
sendVote($(this), -1);
});
}
返回false;执行preventDefault和StopperPropagation
preventDefault停止元素上的默认操作,StopperPropagation停止事件向上冒泡到父元素
我的猜测是,当您仅执行preventDefault时,父级上仍会触发一个事件。返回false与preventDefault不同
事实上,return false是以下内容的组合或简称:
防止违约
停止传播
因此,请尝试将其与e.preventDefault一起添加:
如果有输入错误,请更改此项:
$('.voting').on('click .up', function(e){
致:
为了完整起见:
return false
当处理touchend事件并意味着取消后续单击时,取消同一元素上所有后续处理程序的触发器可能会派上用场
stopImmediatePropagation()
在此阅读StopRopagation和event.stopImmediatePropagation之间的区别:
你能详细说明一下它不起作用吗?这些是什么样的元素?这与ajax有什么关系?对于所有浏览器还是某些浏览器?它们是锚定链接。单击它们时,它将跟随链接。这些是ajax请求,因此它们不应遵循可能重复的链接 return false stopImmediatePropagation()