我想在按钮内设置一个文本框。我遇到文本框的点击事件时遇到问题 - 每当我点击文本框时,它也会点击按钮并触发按钮的事件。 我想将这两个事件分开 - 所以当我点击文本框进行输入时,它不会触发连接到按钮点击的事件。我怎么能做到这一点?
编辑:我尝试过使用stopPropagation和preventDeafult,但按钮事件在到达我的事件之前就会触发。
答案 0 :(得分:1)
根据您的要求,此代码将有效...
$('#btn').click(function(){
this.preventDefault();
alert("wont fire");
});
$('#txt').on('click',function(){
alert("text is clicked");
});
之间的区别
答案 1 :(得分:0)
也许HTML布局有问题,通过为每个元素提供z-index,这里的工作正常:
HTML:
<div style="z-index: 2; position:absolute; top:0">
<input id="text" type="text"/>
</div>
<div style="z-index: 1; position:absolute; top:0 ">
<input id="button" style="width:200px; height:40px; text-align:right" type="Button" value="button"/>
</div>
JS:
$("#text").click(function(){
alert("text clicked");
});
$("#button").click(function(){
alert("button clicked");
});