0

かなり率直な質問があります。$('a.view').attr('id')クリック関数で (Ref //1 in code)を使用できないのはなぜですか? 私はそれを試してみましたが、うまくいきませんでしたが、this.idうまくいきました。主に、以下のコードのコンテキストでの違いを知りたいと思います。

displayRecord.php (次のリンクはクリック関数を呼び出します):

echo '<td><a href="#" style="text-decoration: none;" id="'.$data['id'].'" class="view" ><input type="button" value="View" /></a></td>';

editTicket.php:

$('a.view').click(
            function(e) 
                {    
                             //1                    
                             var ticket_id = this.id;

                    dlg.load('displayRecord.php?id='+this.id, function(){                           

                    var escalationValue = '';

                    $.post('escalateValue.php',{post_ticket_id:ticket_id}, 
                    function(data) {

                        if (data == 'No'){
                            showCount();
                        }
                    });

                    dlg.dialog('open');

                });

            });
4

2 に答える 2

3

$('a.view').attr('id')クラスに複数のアンカーがある場合、複数の要素に一致する可能性がviewあるため、イベント内で使用する場合、必ずしもクリックされた要素を取得するとは限りませんclickthis.idクリックされた要素のみを参照し、最速の方法でもありますが、次のこともできることを示すために:

$(this).attr('id'); // in the click event
于 2013-01-02T09:49:44.253 に答える
1

これは、アラートを受け取っているかどうかを確認します。

$(document).on('click', 'a.view', function(e) {
    alert($(this).attr('id'));
    alert(this.id);
});​
于 2013-01-02T09:52:59.387 に答える