通过引用Jquery中的click事件传递参数

时间:2011-03-24 03:02:17

标签: javascript jquery pass-by-reference

我有一个功能:

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

并在函数中我正在重新审视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;

}

这是可以接受的,还是有不同的方式通过引用发送参数,以便在调用函数中可以访问它,并且应该反映修改后的值?因为这种方式对我来说似乎不对。任何帮助,将不胜感激。感谢。

2 个答案:

答案 0 :(得分:3)

您无法在JavaScript中通过引用传递值,但您可以传递已经是引用的内容。例如,您可以使用对象文字来模拟指针:

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

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

答案 1 :(得分: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;
}

或者,如果您不想只使用一个'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;
}

希望这有帮助。