如果我使用$(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/

10-07 21:55