2

html onclick イベントから onclick jquery 関数にパラメータを渡したいです。

PHP での html ステートメントのレンダリング

$name = "abcd";
for ($i=0;$<10;$i++){
$text .= '<tr>
             <td>'.$i.'</td>
             <td><div id="name">'.$name.'/div>
                 <a class="href" onclick="callJSFunc($i,\''.$name.'\')" ></a>
             </td>
          </tr>';
}

ジャバスクリプト..

function callJSFunc(i , name){
alert(i+"  "+name);
}

何かに変換したい...

$(".href").click(function(i,name,event){
alert(i+"  "+name);
});
4

3 に答える 3

6

他の方法で試してみませんか

$name = "abcd";
for ($i=0;$<10;$i++){
$text .= '<tr>
         <td>'.$i.'</td>
         <td><div id="name">'.$name.'/div>
             <a class="href" data-id="'.$i.'" data-name="'.$name.'" ></a>
         </td>
      </tr>';
}

そしてjQuery onClickで

$(".href").click(function(){
    alert($(this).attr('data-id')+"  "+$(this).attr('data-name'));
});
于 2013-01-11T13:03:21.867 に答える
3

イベントが発生する方法を変更することはできませんが、それらのパラメーターをdata-*属性としてマークアップに保存し、イベント ハンドラー内で抽出することはいつでもできます。あなたが要求するのは、イベントをサブスクライブして、パラメーターとして必要なものに応じてイベント オブジェクトを自然に変更することですが、ブラウザーには必要なものを理解する方法がありません。

属性を使用data-*するとは、DOM 要素内にデータを格納することです。

<a class="href" data-index="$i" data-name="$name" href="someHref" />

jQuery:

$('.href').click(function (event) {
    var index = $(this).attr('data-index'); // Yields a string use data() for other data types
    var name = $(this).attr('data-name'); // Yields a string use data() for other data types
});
于 2013-01-11T13:01:34.037 に答える
0

PHP でパラメーターを送信する代わりに、jQuery を使用してこれを行うことをお勧めします。

JavaScriptで次のようなことができます:

$('a.href').click(function( event ) {
  var index = $('table').index(this); // Containing table
  var name = $(this).siblings('#name').innerHTML;
  alert( index + ' ' + name );
});

ところで、ID は一意である必要があります。コードは 10 個のテーブル行を生成し、そのすべてに ID '#name' が含まれています。

于 2013-01-11T13:14:30.867 に答える