【发布时间】:2013-10-03 11:56:04
【问题描述】:
我想用类“liveVariable”将回调链接到每个输入(输入文本):
$(".liveParameter").keyup(function(){
var callBackString= 'skp:change-'+$(this).attr('id')+'@'+$(this).attr('value');
window.location = callBackString;
});
但是,这给了我一个奇怪的错误。传递的值是输入字段的初始值(每次触发事件时)。
我不明白为什么这不起作用。我不认为我有一个闭包,局部变量 callBackString 是在 in 被调用函数中创建的。所以每次都应该创建?
我怎样才能优雅地解决这个问题? (我不想为每个输入字段创建一个调用,因为我有很多实时参数..)
【问题讨论】:
-
将
$(this).attr('value')更改为$(this).val() -
另外,为了我的强迫症,把
$(this).attr("id")改成this.id -
有趣的@Archer...好处?
-
@ChrisKempen 不构造一个巨大的 jQuery 对象只是为了获取可以直接使用
this.id访问的元素的 id 的好处? :) -
但是
$看起来很漂亮! xD
标签: javascript jquery function closures