如果我使用$(this),如何防止在jquery中混合值?例如:
1: <input type="text" id="in1" class="test"> <br />
2: <input type="text" id="in2" class="test"> <br />
<div id="ppp"> <p class="show" id="one">onevalue</p> <p class="show" id="two">twovalue</p></div>
#ppp {
display: none;
}
$(".click").click(function(e) {
$("#block").show();
var current = $(this);
$(".show").click(function(e) {
current.val($(this).attr("id"));
});
});
实例 - http://jsfiddle.net/VmXU9/59/
如果我点击1输入显示“onevalue”和“twovalue”。如果我点击“onevalue”或“twovalue”,则在1个输入中出现id为“onevalue”或“twovalue”。这很好,但如果我另外点击2输入并选择“onevalue”或“twovalue”,则“onevalue”或“twovalue”的ID出现在1输入和2输入中。应该只有一个 - 在最后点击。我该怎么做?
谢谢!
答案 0 :(得分:1)
每次单击输入时,您都绑定$(".show").click()
,导致它重复。确保先解开绑定:
$(".show").unbind('click').click(function(e) {
//etc
});
答案 1 :(得分:0)
如果我理解你要做的事情,你需要:
current
input.show
元素上点击事件的绑定移动到点击input.click
元素之外:演示: http://jsfiddle.net/JAAulde/VmXU9/65/
理想情况下,您要关闭所有这一切的范围,以避免将current
作为全局引入,并且在操作之前检查current
是否已从其初始设置更改:< / p>
答案 2 :(得分:0)