.delegate()没有绑定到锚元素标记

时间:2011-08-10 12:03:46

标签: jquery sharepoint-2007

我正在尝试使用委托功能但没有成功,这是我的HTML ...

<td class="ms-vb-icon">
    <a tabindex="-1" href="/ACKNOWLEDGEMENT%20OF%20DEBT%20-%20SCOTLAND.doc"
                    onclick="return DispEx(this,event,'TRUE','FALSE','TRUE','SharePoint.OpenDocuments.3','0','SharePoint.OpenDocuments','','','','41','1','0','0x7fffffffffffffff')">
    <img border="0" alt="ACKNOWLEDGEMENT OF DEBT - SCOTLAND.doc" title="ACKNOWLEDGEMENT OF DEBT - SCOTLAND.doc" src="/_layouts/images/icdoc.gif"></a>
</td>

这是由SharePoint为我生成的,表格中有更多内容可能是我的问题的一个因素,请参阅here查看完整列表。表格的html(id为onetidDoclibViewTbl0)在页面加载后生成;通过ajax电话。

我尝试使用委托功能......

$('#onetidDoclibViewTbl0').delegate('tr td.ms-vb-icon a', 'click', function(event)  {
    alert(‘document anchor clicked’);
});

我甚至尝试了无效的

$('body').delegate('a', 'click', function() {
    alert('this really should work?');
});

2 个答案:

答案 0 :(得分:4)

您的大多数链接都有一个return false;的onclick属性。这可以防止事件冒泡DOM,delegate方法依赖它来正常运行。

答案 1 :(得分:1)

你是对的......真的应该有效。我把你的代码放在jsFiddle中。这似乎工作正常。也许它与您使用的jQuery版本有关?代表最近才加入......

此外,body元素需要存在于运行代码的位置。你可能最好不要像猎人建议的那样将它包装在文档准备好的回调中。