当应用于锚内的文本框时,jQuery stopPropagation无法正常工作

omi*_*nes 2 html anchor jquery events input

希望您能够帮助我.我有这样的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>
Run Code Online (Sandbox Code Playgroud)

Normaly,当用户点击文本框时,页面会重定向到"error.htm".我想阻止它,所以我使用jQuery来取消它:

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

但是,这不起作用,点击仍然由锚处理并重定向到"error.htm".

请帮忙,谢谢.

Kri*_*ard 5

返回假而不是(工作小提琴)

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

preventDefault 做你想要的,但返回错误触发两者.

更新小提琴:

$(this).focus()在返回之前添加,你应该是金色的.但是我建议你看一下设置你的html的另一种方法,这样<a>就不会首先包装输入.