我拥有的是:无论我在div
容器内点击哪里,我都会在该位置创建一个文本框。我所做的基本上是捕获div
容器上的click事件。像这样的东西
修改
<div id="noteCol">
<textarea class="textBox"/>
...
</div>
<script>
jQuery(".textBox").click(function(e){
e.preventDefault();
});
jQuery("#noteCol").click(function(e){
...
});
</script>
我现在遇到的问题是,如果我想在我刚创建的文本框上书写,那么我就不能了。因为文本框是在div noteCol
内创建的,所以当我尝试单击该文本框来编写内容时,jQuery会捕获click事件并在当前文本框的顶部创建一个文本框。我该如何解决这种情况? (对于所有文本框,可能会有相同的class="textbox"
,当我在noteCol
内单击时,会以某种方式检测我是否点击.textbox
)请帮助
答案 0 :(得分:1)
点击文字框时使用event.preventDefault();
。
像这样......
$('.textBox').click(function(e){
e.preventDefault();
//rest of your logic go here
});
参考...... preventDefault
已更新
我认为在您的情况下stopPropagation()
会帮助您......
$('.noteCol .textBox').click(function(e){
e.stopPropagation();
//rest of your logic will go here
});
我认为您正在寻找上述选项。
我希望它可以帮助你
答案 1 :(得分:0)
这是我的问题的解决方案。由于我动态创建textarea
,因此click事件不会绑定到新创建的textarea
。我必须使用live
。这是我的解决方案
jQuery (".textBox").live("click",function(e){
e.stopPropagation();
});
jQuery("#noteCol").live("click", function(e){
...
});