2012-08-05 148 views
1

我有一個HTML表單,觸發一個函數來更改一個值,參考:http://jsfiddle.net/ZvuMh/3/ 如何在另一個函數中動態使用avaluejavascript如何動態更新變量

HTML:

<select id="sort_post_date"> 
    <option value="a">a</option> 
    <option value="b">b</option> 
    <option value="c">c</option> 
    <option value="d">d</option> 
    <option value="e">e</option> 
    <option value="f">f</option>  
</select>​ 

變化值函數:

var avalue=''; 
function getSelectData(id) { 


    // set value to be the current selected value 
    avalue = jQuery(id+" option:selected").val(); 

    // change value whenever the box changes 
    jQuery(id).change(function() { 
     avalue = jQuery(id+" option:selected").val(); 
     console.log("I see a change! -> "+avalue); 
    }); 

    console.log(avalue); 
    return avalue; 
} 

var d = getSelectData("#sort_post_date"); 
console.log(d);​ 

想要繼承avalue當功能getSelectData它改變到另一個信另一項功能:

function somefunction(){ 
    var test = "foo"+avalue; 
} 
+0

你應該使用,而不是「訪問」,「繼承」 - 繼承一般用於面向對象編程,您不使用它。 – tucuxi 2012-08-05 07:08:38

回答

2

爲什麼不直接稱呼它,這樣一來,somefunction都會被調用一次字母的變化:

// change value whenever the box changes 
jQuery(id).change(function() { 
    avalue = jQuery(id+" option:selected").val(); 
    console.log("I see a change! -> "+avalue); 
    somefunction(avalue); 
}); 

function somefunction(avalue){ 
    var test = "foo"+avalue; 
} 
+0

夠簡單,thx! – Bwyss 2012-08-05 08:10:06

1

使用全球該變量的範圍,如window.avalue = 'value'和訪問它window.avalue