我正在尝试使用委托功能但没有成功,这是我的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?');
});
答案 0 :(得分:4)
您的大多数链接都有一个return false;
的onclick属性。这可以防止事件冒泡DOM,delegate
方法依赖它来正常运行。
答案 1 :(得分:1)
你是对的......真的应该有效。我把你的代码放在jsFiddle中。这似乎工作正常。也许它与您使用的jQuery版本有关?代表最近才加入......
此外,body元素需要存在于运行代码的位置。你可能最好不要像猎人建议的那样将它包装在文档准备好的回调中。