stopPropagation不会停止父操作

时间:2012-01-18 11:28:03

标签: javascript jquery javascript-events

我在a-tag中输入一个输入。我想在单击以更改输入中的值时停止链接。喜欢这个

  

HTML

<div id="contain">
    <a href="http://www.stackoverflow.com" target="_blank" id="link">
        <input id="clickme" type="text" value="1"></input> 
        Buy
    </a>
</div>
  

jquery的

$('#clickme').focus(function(e){
    e.stopPropagation();
});

$('#clickme').click(function(e){
    e.stopPropagation();
});

jsfiddle:http://jsfiddle.net/GKvw3/1/

结果是它仍然转到stackoverflow.com。任何想法为什么会这样。

修改
我真实的情况是我得到了如下所示的标记。现在我所做的是,当有人点击TR内的任何地方时,它会接受链接href。所以问题就是提交表单(而不是标记)会导致链接..因为我想做我上面解释的那就是为什么我在测试中使用链接里面的输入。

<table>
    <tr>
    <td><a href="#">headline</a></td>
    ...
    <td><input type="submit" id="submitme" value="buy"/></td>
    </tr>
</table>

2 个答案:

答案 0 :(得分:1)

应为preventDefault()

$('#clickme').click(function(e){
    e.preventDefault();
});

.focus()中执行此操作无关紧要,您只需“取消”.click()

Updated fiddle

答案 1 :(得分:0)

您可以使用return false;

$('#clickme').click(function(e){
    return false;
});

See fiddle here.

当我需要做你想做的事时,我通常会使用它。

相关问题