簡體   English   中英

從html onclick事件傳遞jQuery onclick函數的參數

[英]passing parameter on jQuery onclick function from html onclick event

我想從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>';
}

JavaScript的..

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

我想把它轉換成某種......

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

你為什么不嘗試其他方式

$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'));
});

您無法更改觸發事件的方式,但您始終可以將這些參數作為data-*屬性存儲在標記中,並在事件處理程序中提取它們。 你要求的是訂閱事件和事件對象,根據你想要的參數自然地變異,但是瀏覽器無法弄清楚你需要什么。

我使用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
});

最好用jQuery做這個,而不是用PHP發送參數。

您可以在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'。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM