我有一系列選擇列表中,我使用,以用IDS文本框。 所以你點擊一個選擇選項,另一個文本框被填入其ID。簡化我的JavaScript與函數
只有一個選擇/ ID對這工作正常,但我有倍數,唯一的變化是選擇和輸入的ID ..實際上只是結局的變化,輸入都始於featredproductid和選擇標識全部從配方產品開始,然後以類別結束。
我知道,一遍又一遍上市這爲每個類別是不這樣做的方式。我想我需要使類別 VAR貓= [「橄欖油」,「顆粒」,「意大利麪」] ,然後使用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(不,我不能更新抱歉)。 我相信這是一種基本的東西,我似乎已經把我的大腦包裹起來了。但我確信這樣做如上是不是真的好...
JS支持高階函數(採用函數和返回函數)。請注意,答案都遵循一種常見模式:將函數的一部分分解爲不同的變量,將其變爲高階函數的參數。 – outis 2010-05-06 01:19:20
你應該聲明'pidselected'是本地的('var pidselected'在監聽器中),所以你不使用全局變量並且污染全局名字空間。 – outis 2010-05-06 01:19:46