我想将回调链接到每个输入(类型文本)与类'liveVariable':
$(".liveParameter").keyup(function(){
var callBackString= 'skp:change-'+$(this).attr('id')+'@'+$(this).attr('value');
window.location = callBackString;
});
然而,这给了我一个奇怪的错误。值pass是输入字段的初始值(每次触发事件时)。
我不明白为什么这不起作用。我不认为我有一个闭包,局部变量callBackString在被调用函数中创建。所以应该每次创建它?
如何以优雅的方式解决这个问题? (我不想为每个输入字段创建一个调用,因为我有很多实时参数..)
答案 0 :(得分:1)
尝试更改:
var callBackString= 'skp:change-'+$(this).attr('id')+'@'+$(this).attr('value');
...为:
var callBackString= 'skp:change-'+$(this).attr('id')+'@'+$(this).val();
有关.val()
功能的更多详细信息,请参见jQuery docs website here。
修改强> 的
为了优雅,性能和评论的贡献,以下解决方案最终将是最好的:
$(".liveParameter").keyup(function(){
var input = $(this);
var callBackString = 'skp:change-' + input.attr('id') + '@' + input.val();
window.location = callBackString;
});
答案 1 :(得分:1)
更改代码
$(this).attr('value'); // get the initial value
$(this).val(); // get the current and updated value