2

可能重复:
如何向 jQuery click 函数发送多个参数?

我想将多个参数传递给 Jquery 函数。下面是 Javascript 示例代码。我想将此 javascript 函数转换为 jquery 函数。如何将该参数传递给 jquery onclick 事件?

<a onclick="showState('state_name','state_id')">ADD STATE </a>

function showState(state_name,state_id){
openbox_state(state_name,state_id);
}
4

4 回答 4

7

也许我会在这里使用数据集:

HTML:

<a data-state_name="state_name" data-state_id="state_id" >ADD STATE</a>

JS:

$(function() {
...
  $('a[data-state_id]').click(function() {
    var $this = $(this);
    showState($this.data('state_name'), $this.data('state_id'));
    return false;
  });
...
});

您实际上不必对单击的对象进行 jwrap,因为您可以使用数据集API(如果您有幸不支持 IE9)或简单的getAttribute方法来获取属性值。然而,我发现这种语法更简洁易读。

于 2012-11-30T12:19:35.117 回答
2

正确的方法是:

<a href="#" id="myanchor" data-nm="state_name" data-id="state_id">ADD STATE </a>

<script type="text/javascript">
$(document).ready(function(event) {
   event.preventDefault();
   $('#myanchor').on('click', function() {
      openbox_state( $(this).data('nm') , $(this).data('id'));
   });
});
</script>
于 2012-11-30T12:21:47.083 回答
1

你的jQuery代码:

<script language="javascript" type="text/javascript">
 var state_name=$('#txtName').val();
 var state_id=$('#txtid').val();
$(document).ready(function () {
     $('a').click(function(){
        showState(state_name,state_id);
         });
});



function showState(state_name,state_id){
   openbox_state(state_name,state_id);
  }

</script>  

您的 HTML:

<a href="javaScript:void(0);">ADD STATE </a>
<input type="text" id="txtName" value="Tom Cruse" />
<input type="text" id="txtid" value="1" />

这个 jquery 从输入中获取值,通过使用它们的 id 并将它们用作调用方法的参数。

于 2012-11-30T12:29:13.200 回答
0

如果您需要传递要在事件处理程序中使用的其他数据,jQuery click 事件绑定器已经支持这一点。但是为了使用它,您必须通过代码而不是内联绑定来绑定事件处理程序。

$(function(){ $('#id').click({additional : "data"},function(){ // 处理程序代码}); });

检查文档:http ://api.jquery.com/click/

于 2012-11-30T12:31:23.747 回答