我有一个很简单的问题。为什么我的点击功能不能使用$('a.view').attr('id')(代码中的// 1)?我尝试了它,但没有成功,但this.id可行。我想我主要是想知道以下代码上下文的区别:

displayRecord.php(以下链接调用click函数):

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

                });

            });

最佳答案

如果您有多个带有$('a.view').attr('id')类的锚,则view可以匹配多个元素,因此,如果在click事件中使用它,则不一定会获得clicked元素。 this.id仅指被单击的元素,也是最快的方法,但为了演示您也可以这样做:

$(this).attr('id'); // in the click event

07-24 09:50
查看更多