将参数传递给 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 1.9.1 .trigger() 没有将参数传递给点击处理程序
如何将传递给我的 bash 脚本的所有参数传递给我的函数? [复制]