使用带有jQuery委托的hasClass()?

时间:2011-02-08 15:12:37

标签: jquery delegates

我有一个gridview(gdvMyInfo),其中包含我用jQuery抓取的q列链接。

$('#<%= gdvMyInfo.ClientID %>').delegate('a', 'click', function(){
    var link = $(this).attr('href');
    ....
    return false;
});        

这工作得很好,但现在会有第二列包含链接,我需要打开分页。现在,我将jQuery更改附加到这些新链接。

我在我需要的链接上有一个“myInfoClass”类,但是使用类作为选择器似乎对我不起作用(不确定它是否为委托,因为它没有选择好)。

$('.myInfoClass').delegate('a', 'click', function(){

这不起作用,所以我想我可以使用.hasClass()函数,但也失败了。

$('#<%= gdvMyInfo.ClientID %>').hasClass('myInfoClass').delegate('a', 'click', function(){

此操作失败,并显示“.delegate不是函数”的错误消息

那么,在使用委托时,如何使用委托来链接选择器以获取我的gridvie“gdvMyIfno”中的任何<a>和任何类型的“myInfoClass”?

1 个答案:

答案 0 :(得分:2)

只需将类添加到选择器:

$('#<%= gdvMyInfo.ClientID %>').delegate('a.myInfoClass', 'click', function(){

现在click只会触发具有<a>类的myInfoClass元素。

.delegate()的工作方式是将处理程序放在容器#<%= gdvMyInfo.ClientID %>上。然后在该容器内点击的元素与a.myInfoClass选择器进行比较。如果元素与选择器匹配,则调用处理程序。