为什么preventDefault不起作用,但返回false呢(why does preventDefault not work but return false does)
有没有人有任何想法,为什么我的preventDefault代码不工作? 返回假返回正常,但这是我的理解,这不是真的'适当'的方式?
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); }); }Does anyone have any idea why my preventDefault code isn't working? return false returns fine, but it is my understanding that's not really the 'proper' way?
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; 既stopPropagation preventDefault和stopPropagation 。
preventDefault停止元素的“默认”动作, stopPropagation停止冒泡到父元素的事件。
我的猜测是,只有当您执行preventDefault时,父项上仍有一个事件被触发。
return false; does both preventDefault and stopPropagation.
preventDefault stops the "default" action on the element, stopPropagation stops the event from bubbling up to the parent elements.
My guess is that there is an event on the parent that is still getting triggered when you only do preventDefault.
更多推荐
发布评论