【问题标题】:How to use variable returned from click event?如何使用点击事件返回的变量?
【发布时间】:2014-12-11 09:35:31
【问题描述】:

我有返回数组的 JavaScript 函数。我正在收集该数组,例如,

<button onclick="var v = onclick1();">Click me</button>

我想在应用程序的其余部分使用变量 v。

我试图使它成为全局但不起作用。

我可以在 span 中显示数组 v 中的文本吗?

<span id="SP">

</span>

问候

【问题讨论】:

  • 为什么不把逻辑移到onclick1函数中?
  • @Vohuman 我在 onclick 中有逻辑,它写在其他一些 js 文件中,我想在 html 的其余部分使用它的返回值。
  • 所以定义另一个函数并在其中使用该函数的返回值。当前的逻辑被打破了。
  • @Vohuman 我有一些点击事件的返回值,如何获取该值,然后我将在其他函数中使用它。首先我需要得到它?
  • 只需创建一个 JavaScript 函数并在其中使用变量 v

标签: javascript html arrays dom return


【解决方案1】:

PFB代码:

JS

  var returnVal;

    function onclick1(){
     // todo write your logic
     var a= [2,2]; // some array to be returned
     returnVal = a;
     document.getElelmentById('SP').innerHtml = returnVal;
    }

HTML:

    <button onclick="onclick1();">Click me</button>
<span id="SP">

</span>

希望对你有帮助。

【讨论】:

    【解决方案2】:

    也许你可以试试这样的:

    <button onclick=" v = onclick1();">Click me</button>
    
    <script>
    var v
    function onclick1(){
        var a= [2,2];
        return a;
    }
    
    $(document).ready(function(){
    
        document.addEventListener("click", function(){ // this part is only to show you that v got the returned vale.
    alert(v);
    });
    });
    
    
    
      </script>
    

    【讨论】:

      【解决方案3】:

      您的变量v 始终将作用域限定为单击处理程序,因此要使其可供应用程序的其余部分访问,唯一的方法是在更高的作用域中设置另一个变量。一种可能的解决方案是使用一个全局对象来表示您的应用程序,并使用 v 属性。

      var yourApp = yourApp || {};
      yourApp.v = null;
      
      window.onload = function(){
          document.getElementById("yourbutton").addEventListener(function(){
              yourApp.v = onclick1();
          }, false);
      }
      

      现在,在您的其他脚本文件中,您可以参考yourApp.v

      您可以只将 v 设为全局变量,但拥有大量单独的全局变量通常不是好的做法(污染全局范围),但是使用单个全局对象来包含您的其他变量是可以接受的。

      旁注:我使用 addEventListener 将事件处理程序分配给您的按钮,它需要一个 ID yourbutton,因为这比内联点击处理程序更受欢迎。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-04-30
        • 2023-03-13
        • 2012-06-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多