如果我使用$(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个输入中出现“ onevalue”或“ twovalue”的ID。这很好,但是如果我另外单击2输入并选择“ onevalue”或“ twovalue”,则“ onevalue”或“ twovalue”的ID出现在1输入和2输入中。应该只合一-最后点击一次。我该怎么做?
谢谢!
最佳答案
如果我了解您要执行的操作,则需要:
移动current
的范围
将input.show
元素上的click事件的绑定移到input.click
元素的单击之外:
演示:http://jsfiddle.net/JAAulde/VmXU9/65/
理想情况下,您应该关闭所有范围,以免将current
引入全局,并且在操作之前,请检查current
是否已从其初始设置更改为:
演示:http://jsfiddle.net/JAAulde/VmXU9/66/