【问题标题】:Passing parameters to a JQuery function将参数传递给 JQuery 函数
【发布时间】:2010-09-27 02:07:19
【问题描述】:

我正在创建带有一个循环的 HTML,该循环有一列用于操作。那一栏 是一个超链接,当用户单击时调用 JavaScript 函数并传递参数...

示例:

<a href="#" OnClick="DoAction(1,'Jose');" > Click </a>
<a href="#" OnClick="DoAction(2,'Juan');" > Click </a>
<a href="#" OnClick="DoAction(3,'Pedro');" > Click </a>
...
<a href="#" OnClick="DoAction(n,'xxx');" > Click </a>

我希望该函数以正确的方式调用 Ajax jQuery 函数 参数。

有什么帮助吗?

【问题讨论】:

    标签: javascript jquery html function parameters


    【解决方案1】:
    <script type="text/javascript" src="jquery.js">
    </script>
    
     <script type="text/javascript">
    
      function omtCallFromAjax(urlVariable)
    { 
        alert("omt:"+urlVariable);
         $("#omtDiv").load("omtt.php?"+urlVariable);
    }
    
     </script>
    

    试试这个对我有用

    【讨论】:

      【解决方案2】:

      使用 POST

      function DoAction( id, name )
      {
          $.ajax({
               type: "POST",
               url: "someurl.php",
               data: "id=" + id + "&name=" + name,
               success: function(msg){
                           alert( "Data Saved: " + msg );
                        }
          });
      }
      

      使用 GET

      function DoAction( id, name )
      {
           $.ajax({
                type: "GET",
                url: "someurl.php",
                data: "id=" + id + "&name=" + name,
                success: function(msg){
                           alert( "Data Saved: " + msg );
                         }
           });
      }
      

      编辑:

      如果未启用 javascript,则可能更好的方法(使用 GET)是为 href 生成 URL,然后使用点击处理程序通过 ajax 调用该 URL。

      <a href="/someurl.php?id=1&name=Jose" class="ajax-link"> Click </a>
      <a href="/someurl.php?id=2&name=Juan" class="ajax-link"> Click </a>
      <a href="/someurl.php?id=3&name=Pedro" class="ajax-link"> Click </a>
      ...
      <a href="/someurl.php?id=n&name=xxx" class="ajax-link"> Click </a>
      
      <script type="text/javascript">
      $(function() {
         $('.ajax-link').click( function() {
               $.get( $(this).attr('href'), function(msg) {
                    alert( "Data Saved: " + msg );
               });
               return false; // don't follow the link!
         });
      });
      </script>
      

      【讨论】:

      • 您不必为 GET 更改任何内容,除了将 TYPE 更改为 GET。查询字符串将自动构建。
      • @Pim -- 已更新,谢谢。当我写这篇文章时,我对 jQuery 还是很陌生。
      • 如果要向 URL 传递多个参数,请使用 data 作为 data:{id:'123' , name:"MyName"} 其中 123 是参数 id myName 的值是参数名称的值,这里的值可以是字符串或具有要传递的值的变量。只是一个避免字符串连接的简单技巧。
      • 这个接受的答案对我来说看起来很棒,但我不禁想知道,在 jQuery 中而不是在 标签中完成的 onClick 绑定会如何?我被引导相信 jQuery 也可以处理事件绑定。
      • @Marcus - 我实际的做法是将 URL 生成为 href 属性。然后,我将添加一个单击处理程序,该处理程序从锚的 href 元素获取 url 并通过 ajax 发布/获取该 URL,从单击处理程序返回 false。我可以添加它作为替代。
      【解决方案3】:

      试试这样的

      #vote_links a 将捕获投票链接 div id 内的所有 id ...

      <script type="text/javascript">
      
        jQuery(document).ready(function() {
        jQuery(\'#vote_links a\').click(function() {// alert(\'vote clicked\');
          var det = jQuery(this).get(0).id.split("-");// alert(jQuery(this).get(0).id);
          var votes_id = det[0];
      
      
         $("#about-button").css({
          opacity: 0.3
         });
         $("#contact-button").css({
          opacity: 0.3
         });
      
         $("#page-wrap div.button").click(function(){
      

      【讨论】:

        【解决方案4】:

        如果你想做一个 ajax 调用或一个简单的 javascript 函数,别忘了用 return false 关闭你的函数

        像这样:

        function DoAction(id, name) 
        { 
            // your code
            return false;
        }
        

        【讨论】:

          【解决方案5】:

          您想将参数传递给另一个页面还是只传递给函数?

          如果只是函数,则不需要添加tvanfosson添加的$.ajax()。只需添加您的功能内容。 喜欢:

          function DoAction (id, name ) {
              // ...
              // do anything you want here
              alert ("id: "+id+" - name: "+name);
              //...
          }
          

          这将返回一个带有 id 和 name 值的警报框。

          【讨论】:

            猜你喜欢
            • 2013-01-27
            • 1970-01-01
            • 2011-04-16
            • 2017-02-05
            • 2014-10-18
            • 2013-09-25
            • 2011-08-26
            • 2013-08-08
            • 2011-05-16
            相关资源
            最近更新 更多