每个事件都不起作用

时间:2009-12-31 10:10:20

标签: jquery

此代码不起作用

jQuery.each(["Alloggio","Macchina","Aereo","Treno"], function(){         
        t = this;
        $("#ChkPrenotazione" + t + "Default").change(function(){            
            $(".Chk" + t).val($(this).val());        
        });
    });

我希望改变事件的内心等于“Alloggio”或“Macchina”或“Aereo”或“Treno”

我该如何解决?

感谢

1 个答案:

答案 0 :(得分:1)

您需要在本地存储t。这可以通过闭包来完成:

jQuery.each(["Alloggio","Macchina","Aereo","Treno"], function(){         
    $("#ChkPrenotazione" + this + "Default").change((function(t){
        return function() {
            $(".Chk" + t).val($(this).val());
        };
    })(this));
});

这里我们使用函数function(t) { … }返回一个带有相应this的函数。这是通过使用this作为t的参数调用该函数来完成的。