如何改进Prototype.js回调函数代码

时间:2011-07-18 16:41:56

标签: javascript prototypejs

我有这个小代码。我正在使用Prototype框架,但我无法将元素绑定到回调函数。这就是为什么我必须写这样的函数。

我该如何改进此代码?

 Event.observe('firstname', 'keyup', function () {
     var form = $('customerform'),
         firstname_0 = form["firstname_0"];
     firstname.value = this.value;
 });
 Event.observe('KundeNachname', 'keyup', function () {
     var form = $('customerform'),
         lastname_0 = form["lastname_0"];
     lastname_0.value = this.value;
 });

2 个答案:

答案 0 :(得分:1)

$('customerform')['lastname_0'].value = this.value;

这会将您的三行代码压缩为一行。

答案 1 :(得分:1)

每个回调之间的唯一区别是引用的表单字段的名称。我将该代码提取到一个通用的回调创建函数中:

function createHandler(fieldName) {
    return function() {
        $('customerform')[fieldName].value = this.value;
    }
}

Event.observe('firstname', 'keyup', createHandler("firstname_0"));
Event.observe('KundeNachname', 'keyup', createHandler("lastname_0"));