当应用于 anchor 内的文本框时,jQuery stopPropagation 不起作用

标签 jquery html events input anchor

希望你能帮助我。我有这样的 html 标记:

<a href="error.htm" class="button" id="_uiStart" style="-moz-border-radius: 4px 4px 4px 4px;">
<span>Start</span>
<input type="text" id="_uiCode">
</a>

通常,当用户单击文本框时,页面会重定向到“error.htm”。我想阻止这种情况,所以我使用 jQuery 来取消它:

$(document).ready(function() {
   var mute = function(event){        
       event.stopPropagation();
   };    
   $('a.button input').click(mute)
    .mousedown(mute)
    .mouseup(mute);
}

但是,这不起作用,点击仍然由 anchor 处理并重定向到“error.htm”。

请帮忙,谢谢。

最佳答案

返回 false ( working fiddle )

stopPropagation 仅适用于事件处理程序,不适用于默认行为。

preventDefault 做你想做的事,但返回 false 会触发两者。

更新的 fiddle :

添加$(this).focus()回来之前你应该是金色的。不过,我建议您查看另一种设置 html 的方法,以便 <a>首先不会包装输入。

关于当应用于 anchor 内的文本框时,jQuery stopPropagation 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5305118/

相关文章:

javascript - 具有选择器和非选择器的 JQuery 选择器

javascript - 使用选择器单击时记录

jquery - 为什么 Assets 管道找不到我的 JQuery?

javascript - 将数据推送到不同的元素,具体取决于带有 GAS 的 google 电子表格中的列?

jquery - 删除选择中的下拉箭头

c# - 事件源与原始源

Jquery 显示方法在 XUL 中无法正常工作

javascript - 如何在不刷新页面的情况下重新加载保持页面和过滤搜索(如果存在)的数据表?

c# - 我可以更改表单控件值但不触发事件吗?

java - 是否可以不从JPanel继承到内部类?