简化我的JavaScript与功能

我有一系列选择列表,我正在使用ID填充文本框。 所以你点击一个选择选项,另一个文本框被填入其ID。

只有一个选择/ ID对这工作得很好,但我有倍数,唯一改变的是选择和输入的ID ..实际上只是结局的变化,输入全部以featredproductid和选择ID开头先从食谱产品开始,然后以类别结束。

我知道,为每个类别反复列出这一点并不是做到这一点的方法。 我想我需要制作一系列类别var cats = ['橄榄油','谷物','面食'],然后使用forEach功能? 也许?

这里是笨重的代码

window.addEvent('domready', function() {
    $('recipesproductoliveoil').addEvent('change', function(e){
       pidselected = this.options[this.selectedIndex].getProperty('value') ;
   $("featuredproductidoliveoil").setProperties({
       value: pidselected}); ;
    });
       $('recipesproductgrains').addEvent('change', function(e){
           pidselected = this.options[this.selectedIndex].getProperty('value') ;
       $("featuredproductidgrains").setProperties({
           value: pidselected}); ;
        });
      $('recipesproductpasta').addEvent('change', function(e){
          pidselected = this.options[this.selectedIndex].getProperty('value') ;
      $("featuredproductidpasta").setProperties({
          value: pidselected}); ;
       });
    $('recipesproductpantry').addEvent('change', function(e){
        pidselected = this.options[this.selectedIndex].getProperty('value') ;
    $("featuredproductidpantry").setProperties({
        value: pidselected}); ;
     });

});

请记住这是mootools 1.1(不,我不能更新它对不起)。 我相信这是一种基本的东西,我似乎把我的大脑包裹起来。 但我确信这样做并不是很好......


你很近。 这是你如何做到的:

var cats = ['oliveoil', 'grains', 'pasta'];
for (i in cats) {
    addChangeFunction(cats[i]);
}

function addChangeFunction(name) {
    $('recipesproduct' + name).addEvent('change', function(e) {
        pidselected = this.options[this.selectedIndex].getProperty('value');
        $('featuredproductid' + name).setProperties({
            value: pidselected
        });
    });
}

像这样的东西可能会有所帮助:

 function bindSelectFeature(select, featured) {
    $(select).addEvent('change', function(e){
        pidselected = this.options[this.selectedIndex].getProperty('value') ;
        $(featured).setProperties({
          value: pidselected
        });
     });
  });
  bindSelectFeature('recipesproductpasta','featuredproductidpasta');
链接地址: http://www.djcxy.com/p/1465.html

上一篇: Streamlining my javascript with a function

下一篇: Is this object