将参数传递给 JQuery 函数

Posted

技术标签:

【中文标题】将参数传递给 JQuery 函数【英文标题】:Passing parameters to a JQuery function 【发布时间】: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 函数 参数。

有什么帮助吗?

【问题讨论】:

【参考方案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 值的警报框。

【讨论】:

以上是关于将参数传递给 JQuery 函数的主要内容,如果未能解决你的问题,请参考以下文章

有没有办法将多个参数传递给jquery函数[重复]

JQuery将'空参数传递给MVC控制器方法

jquery 1.9.1 .trigger() 没有将参数传递给点击处理程序

如何将传递给我的 bash 脚本的所有参数传递给我的函数? [复制]

如何通过将参数传递给 URL 来使用 jQuery 刷新页面

获取将参数传递给jquery中当前函数的函数名称[重复]