谁能告诉我为什么会这样?

时间:2012-12-07 10:04:53

标签: jquery

我想只提醒最后一个值而不是所有点击的课程 示例

$(document).ready(function(){
$(".a").click(function(){
 var a = $(this).children(".b").val();
    $("#b").click(function(){
       alert(a);            
    });
});

});

here is the code

4 个答案:

答案 0 :(得分:2)

您正在堆叠点击事件。

使用.unbind()删除添加到$("#b")

的之前点击事件

更改为:

$(document).ready(function(){
$(".a").click(function(){
 var a = $(this).children(".b").val();
    $("#b").unbind("click");
    $("#b").click(function(){
       alert(a);            
    });
});
});​

-- See Working Demo --

答案 1 :(得分:1)

您可以在处理程序之外定义变量并进行更新。

$(document).ready(function() {
    var cur = 0;
    $(".a").click(function() {
        cur = $('.b', this).val();
    });
    $("#b").click(function() {
        alert(cur);
    });
});

http://jsfiddle.net/GVqHE/

答案 2 :(得分:0)

试试这个

$(document).ready(function(){
     var a = "" ;
    $(".a").click(function(){
    a= $(this).children(".b").val();

    });
    $("#b").click(function(){
           alert(a);            
        });
});

http://jsfiddle.net/3dnDj/2/

答案 3 :(得分:0)

使用:eq选择器从元素列表中选择特定的子元素 例如$('.a:eq(2)')会选择第3个元素。

请参阅:http://api.jquery.com/eq/