Javascript 试图在onclick中定义函数

Javascript 试图在onclick中定义函数,javascript,jquery,ruby-on-rails,ruby-on-rails-4,Javascript,Jquery,Ruby On Rails,Ruby On Rails 4,我试图在onclick中定义一个函数。它不工作,并且控制台上没有显示错误。我从页面底部调用了该函数,并在onclick()中定义了该函数,但它不起作用 <div id="content-wrapper"> <div class="row"> <div class="col-lg-12"> <div class="main-box clearfix"> &

我试图在onclick中定义一个函数。它不工作,并且控制台上没有显示错误。我从页面底部调用了该函数,并在
onclick()
中定义了该函数,但它不起作用

 <div id="content-wrapper">

          <div class="row">
            <div class="col-lg-12">
            <div class="main-box clearfix">
            <div class="clearfix">
              <div class="common_page gsb1">
              <div class="hdr">
                   <div class="row">
                <div class="col-md-4">
                  <h4>Users</h4>
                </div>
                 <div class="col-md-5">
//this is not working  
  <p><a href="" onclick="function send_Data(data){
                    download_csv(data)};">Download </a></p>
                </div>



                <div class="col-md-3 pull-right">
                      <%=render 'search'%>
                </div> 
              </div>    
                     </div>


           <% download_data = []%>

              <%@users.each do |user|%>     

                 <div id='content' class="tab-content">
                    <div class="tab-pane active" id="all">
                      <div class="row">
                      <div class="col-md-4">
                        <p><b>User Name</b> <span class="blue"> <%=user.name %> </span> </p>
                        <%download_data.push(user.name)%>
                       <p><b>user_code</b> <span class="blue"> <%=user.user_code %> </span>  </p>
                         <%download_data.push(user.user_code)%>
                       <p><b>phone</b> <span class="blue"><%=user.phone %></span>  </p>
                        <%download_data.push(user.phone)%>

                    </div>
                   </div>
               </div>

              <%end%>

              <div data-no-turbolink>
                <%if @users.length > 1%>
                  <%= will_paginate @users %>
                <% end %>
              </div>  
                </div>
              </div>
              </div>
            </div>
          </div>

          <footer id="footer-bar" class="row">
            <p id="footer-copyright" class="col-xs-12">
              Powered by abcadas
            </p>
          </footer>
        </div>
      </div>
    </div>
  </div>
  <script >
       $("#zsales").attr("class","active")

       send_Data("<%=download_data%>")
  </script>

使用者
//这不起作用

用户名

用户代码

电话

1%>

由阿布卡达斯提供动力

$(“#zsales”).attr(“类”、“活动”) 发送数据(“”)
onclick=“函数发送”数据(数据){
下载_csv(数据)};“>下载

你的做法正好相反。您应该在onclick上调用该函数,并在别处定义它。大概是这样的:

<p><a href="" onclick="send_Data()">Download </a></p>
<p>
    <a href="" onclick="(function send_Data(data){
                                     download_csv(data)
                                   }
                        )(window.data);">Download</a>
</p>

并用脚本:

<script >
   $("#zsales").attr("class","active")

   function send_Data(data){
       download_csv(data);
   };
</script>

$(“#zsales”).attr(“类”、“活动”)
函数发送_数据(数据){
下载_csv(数据);
};

根据设计,您很少会在onclick事件中定义函数。在别处定义函数,然后使用
onclick
事件处理程序调用它们

<script type="text/javascript">
function sayHi()
{
    alert('Hi!');
}
</script>

<!--
    When the button is clicked,
    you don't want to define the function,
    you want to say hi!
  --->
<a href="#" onclick="sayHi()">

函数sayHi()
{
警惕(“嗨!”);
}
函数下载_csv()
{
发送数据(“”)
}

您可以定义如下的自执行函数:

<p><a href="" onclick="send_Data()">Download </a></p>
<p>
    <a href="" onclick="(function send_Data(data){
                                     download_csv(data)
                                   }
                        )(window.data);">Download</a>
</p>

哎呀。几乎晚了3年。但是像这样的?把它放在里面而不是叫人来

document.getElementById("yourButton").onclick = function {
    //define your function;
}
或jQuery:

$("#yourButton").click(function() {
   //define your function;
});

其他答案通常是最佳实践,因为它通常会最大限度地减少混乱,而且您可以反复使用相同的函数

否我只想在单击时定义函数..您想定义它,但不调用它吗?:/但是,当您在页面底部调用
send_Data
时,此时不会对其进行定义(因为用户没有单击按钮)。不,我只想定义函数单击一下。如果下面的答案之一回答了您的问题,此网站的工作方式,您将“接受”答案,更多信息:。但前提是你的问题真的得到了回答。如果没有,考虑在问题上增加更多的细节。我没有得到任何相关的答案,这就是为什么我没有把问题标记为正确的原因。
$("#yourButton").click(function() {
   //define your function;
});