2

重複の可能性:
複数の引数をjQueryクリック関数に送信する方法は?

複数の引数を 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 クリック イベント バインダーは既にこれをサポートしています。ただし、これを使用するには、インライン バインドではなく、コードを使用してイベント ハンドラーをバインドする必要があります。

$(function(){ $('#id').click({additional : "data"},function(){ // ハンドラ コード}); });

ドキュメントを確認してください: http://api.jquery.com/click/

于 2012-11-30T12:31:23.747 に答える