简化我的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