2011-03-24 58 views
1

我有一個功能:參數傳遞給點擊事件jQuery中

jQuery('#'+'linkhere').click(getHashPageClick); 

,並在功能我retreving window.location.hash值:

var getHashPageClick = function(evt) { 
    var hashParam = window.location.hash.substring(1); 
} 

但現在我想發送一個參數給getHashPageClick(),說價值,追加hashParam值給它,並在我的調用函數中訪問它?所以這樣的事情,也許? :

jQuery('#'+'linkhere').click(getHashPageClick(value); 
alert("value"); 

,並在被調用函數修改的值值:

var getHashPageClick = function(evt,value) { 
     var hashParam = window.location.hash.substring(1); 
     valuevalue+hashParam; 
return value; 

} 

請問這是可以接受的,或者是有不同的方式,通過參考發送參數,以便它在調用訪問函數和修改後的值應該體現出來嗎?因爲這種方式對我來說並不合適。任何幫助,將不勝感激。謝謝。

回答

1

這是我怎麼會去建立你要找的功能:

jQuery(document).ready(function(){ 
    var value = 'some value'; 
    jQuery('#linkhere').click(function(){ 
      value = getHashPageClick(value); 
      alert('the value is now: '+value); 
    }); 
}); 

var getHashPageClick(value) { 
     var hashParam = window.location.hash.substring(1); 
     value = value+hashParam; 
     return value; 
} 

或者,如果你不想碰到只用一個「值」變量頭,創建兩個變量以串聯方式工作:

jQuery(document).ready(function(){ 
    var value = 'some value'; 
    jQuery('#linkhere').click(function(){ 
      hashValue = getHashPageClick(value); 
      alert('the hash value is now: '+hashValue); 
    }); 
}); 

var getHashPageClick(value) { 
     var hashParam = window.location.hash.substring(1); 
     var hashValue = value+hashParam; 
     return hashValue; 
} 

希望這會有所幫助。

3

你不能在JavaScript中通過引用傳遞值,但是你可以傳遞已經是引用的東西。例如,您可以使用對象文字來模擬指針:

function getHashPageClick(p) { 
    p.value = p.value + window.location.hash.substring(1); 
} 

var p = { value: 'some value' }; 
getHashPageClick(p);