使用以下代码,我将一些input
元素添加到#cls
div中。但是当我尝试在输入内部输入时还要添加新的输入。单击“单击”文本时,我只需要新输入。谁能帮我。谢谢
$('#cls').click(function() {
var add="<input type="text">"
$(#cls).append(add);
});
<div id="cls">click</div>
答案 0 :(得分:3)
您需要查看点击是否实际发生在div
$('#cls').click(function(e) {
if ($(e.target).is(this)) { //or !$(e.target).is('input')
var add = '<input type="text">';
$(this).append(add);
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="cls">click</div>
答案 1 :(得分:0)
将您的输入附加到父元素:
var clicked= false;
$('#cls').click(function() {
if(!clicked){
var add="<input type='text'>";
$(this).parent().append(add);
clicked = true;
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id='cls'>click</div>
&#13;
答案 2 :(得分:0)
如果您使用.after()方法而不是.append(),则文本框将显示在#cls div之外,因此单击文本框不会导致添加新文本框。
一些代码
$('#cls').click(function() {
var add="<input type='text'>";
$('#cls').after(add);
});
答案 3 :(得分:0)
使用jQuery的一种方法。它只会注册一次点击处理程序。
$('#cls').one("click", function(e) {
var add = '<input type="text">';
$(this).append(add);
});