javascript - 为什么 preventDefault 不起作用但 return false 起作用

标签 javascript html ajax jquery

有谁知道为什么我的 preventDefault 代码不起作用? return false 返回正常,但据我所知,这并不是真正的“正确”方式?

 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);
        });
    }

最佳答案

return false; 同时执行 preventDefaultstopPropagation

preventDefault 停止元素上的“默认”操作,stopPropagation 停止事件冒泡到父元素。

我的猜测是,当您只执行 preventDefault 时,父级上仍有一个事件会被触发。

关于javascript - 为什么 preventDefault 不起作用但 return false 起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11368842/

相关文章:

jquery - 如何访问ajax成功回调函数中的$(this)

javascript - Rangy (JS/jQuery) 拆分节点

jquery - 如何将 div 元素定位在右下方并与另一个 div 左对齐

html - 控制表格单元格之间的间距

jquery - 欺骗 ASP.NET 认为请求是 jQuery 文件上传的 Ajax 请求

ajax - TemplateInputException : Error resolving template ****, 模板可能不存在

javascript - JavaScript 匿名函数可以返回自身吗?

javascript - Jquery 悬停 - 保持弹出窗口打开

javascript - 没有 onScroll 的滚动速度更快?

javascript - 列出响应式类次