【问题标题】:Passing parameters by reference to click event in Jquery通过引用传递参数到Jquery中的点击事件
【发布时间】:2011-07-21 19:39:50
【问题描述】:

我有一个功能:

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

在函数中我正在检索 window.location.hash 值:

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

但是现在我想向 getHashPageClick() 发送一个参数,比如 value,将 hashParam 值附加到它并在我的调用函数中访问它?所以像这样的东西,也许? :

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

并在被调用函数中修改 value 的值:

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

}

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

【问题讨论】:

    标签: javascript jquery pass-by-reference


    【解决方案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;
    }
    

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      在 JavaScript 中你不能真正通过引用传递值,但你可以传递已经是引用的东西。例如,您可以使用对象字面量来模拟指针:

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2014-05-10
        • 1970-01-01
        • 2010-10-07
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多