【发布时间】:2011-12-20 17:00:23
【问题描述】:
这个问题之前已经(大部分)被问过/回答过,但是我尝试了三件事来阻止事件冒泡,但没有任何效果:
return false;
e.stopPropagation();
e.preventDefault();
(return false 应该照顾其他两个,对吗?)
这是html:
<div class="tags-holder">
<input type="text" class="addField" id="addField_<%= visit.id %>" placeholder="add a new tag">
</div>
还有 JS(更新已清理):
$('.addField').show().keyup(function(event){
event.preventDefault();
if(event.keyCode == 13 || event.keyCode==9) {
ProfilePage.createTag( this, 'nada', 'addField')
$(this).hide().val('');
return false;
}
});
我把多余的塞子留在了那里,但真的不应该返回 false 简单地杀死冒泡吗? (使用 Chrome)。
线索? keyCode=13 是“回车”
【问题讨论】:
-
你为什么用
$(field).functionCall()而不是field.functionCall()? -
我为您的代码创建了一个jsFiddle,但没有发现任何问题 - 您试图阻止的行为是什么?
-
谢谢。这样可行;考虑到 DOM,这可能与事件冒泡有关(我没有发布整个页面)。问题是它会触发 createTag() 函数两次,这是有问题的 :)
-
@mmmshuddup 我现在清理了——感谢您的意见。
-
你打赌!是的,我也尝试过使用 jsFiddle,它对我来说很好用!哪些浏览器有问题?
标签: javascript jquery dom jquery-events