类选择器影响所有元素

时间:2013-10-06 11:45:31

标签: jquery

我正在尝试创建一个自定义列表框,将所选值设置为活动文本框,而是更改所有文本框(在我的示例中为2)。 我的JQuery部分:

$(".txtList").click(function(event) {
    var txtObj=$(this);     
    $("#lstSR").show();
    $("#lstSR TR").click(function(event) {
        var txtIndex =($(this).find('td:eq(0)').text() ); 
        txtObj.val($(this).find('td:eq(1)').text() );
        $("#lstSR").hide();
    });
});

我的HTML部分:

<form id="form1" name="form1" method="post" action="">
<label for="txtList">My label</label>
<input type="text" name="txtList" class="txtList" />
<label for="txtList">My label 2</label>
<input type="text" name="txtList2" class="txtList" />
</form>

1 个答案:

答案 0 :(得分:2)

每次单击任何文本框时,都会绑定其他处理程序,这就是它“影响所有元素”的原因。

不进行完整的代码优化,只需最少的代码更改就可以在绑定新的代码之前解除单击处理程序的绑定:

("#lstSR TR").unbind("click").click(function(event) {
    //...
}

Live test case