Javascript SharePoint 2013列表-项目的工具提示
我们有很多列的大型SharePoint列表。我们的用户忘记了他们正在查看的单元格,因为在滚动标题后,标题消失了(无法像Excel中那样冻结标题) 我们希望尝试向单元格项添加工具提示,以便当它们悬停在单元格项上时,将显示带有列名的工具提示 以前有人试过这样做吗 我有以下代码,它最初在加载时工作,但在用户排序、筛选或将列表切换到编辑模式后停止工作:Javascript SharePoint 2013列表-项目的工具提示,javascript,jquery,sharepoint,sharepoint-2013,Javascript,Jquery,Sharepoint,Sharepoint 2013,我们有很多列的大型SharePoint列表。我们的用户忘记了他们正在查看的单元格,因为在滚动标题后,标题消失了(无法像Excel中那样冻结标题) 我们希望尝试向单元格项添加工具提示,以便当它们悬停在单元格项上时,将显示带有列名的工具提示 以前有人试过这样做吗 我有以下代码,它最初在加载时工作,但在用户排序、筛选或将列表切换到编辑模式后停止工作: <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.2.6/jquery.min.js"></script>
<script type="text/javascript">
jQuery(
function()
{
$('td').hover
(
function()
{
var idx = jQuery(this).parent().children().index(jQuery(this));
jQuery(this).attr('title',jQuery(this).parent().parent().parent().find('th').eq(idx).text());
jQuery('div.ms-core-brandingText').html(jQuery(this).parent().parent().parent().find('th').eq(idx).text());
}
)
}
);
</script>
jQuery(
函数()
{
$('td')。悬停
(
函数()
{
var idx=jQuery(this.parent().children().index(jQuery(this));
jQuery(this).attr('title',jQuery(this).parent().parent().parent().find('th').eq(idx).text());
jQuery('div.ms-core-brandingText').html(jQuery(this.parent().parent().parent().find('th').eq(idx.text()));
}
)
}
);
您的代码停止工作,因为SharePoint重新加载列表内容。将客户端脚本添加到SharePoint页面时,这是一个常见问题
首先,您实际上应该能够使用冻结的标题渲染视图。是的,它不是现成的,但是有第三方数据表工具可用
另一个选项是通过客户端呈现选项包含代码。这是一个广泛的话题,所以第一步可能是用谷歌搜索它。好的,更进一步,使用CSR而不仅仅是jQuery。这可以工作,但需要手动指定每个字段。正在寻找将其应用于视图中每个字段的方法
<script type="text/javascript">
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
Templates: {
Fields: {
'Comments': {
'View': function (ctx) {
return String.format('<span title="{0}">{1}</span>', this.FieldTitle, ctx.CurrentItem.Comments);
}
},
'Name': {
'View': function (ctx) {
return String.format('<span title="{0}">{1}</span>', this.FieldTitle, ctx.CurrentItem.Name);
}
}
}
}
});
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
模板:{
字段:{
“评论”:{
“视图”:函数(ctx){
返回String.format(“{1}”,this.FieldTitle,ctx.CurrentItem.Comments);
}
},
“姓名”:{
“视图”:函数(ctx){
返回String.format(“{1}”,this.FieldTitle,ctx.CurrentItem.Name);
}
}
}
}
});
当应用筛选/排序时,列表视图会重新加载,因此会出现这种情况 如何在SharePoint 2013中悬停列表项 以下功能可用于在SharePoint 2013中悬停列表项单元格:
function hoverListItems()
{
$('tr.ms-itmhover td').hover(
function() {
var $td = $(this);
var $th = $td.closest('table').find('th').eq($td.index());
$td.attr('title',$th.text());
}
);
}
由于在SharePoint 2013中,客户端呈现(CSR
)是默认呈现模式,因此下面的示例演示了如何使用OnPostRender
事件注册hoverListItem
函数
SPClientTemplates.TemplateManager.RegisterTemplateOverrides({
OnPostRender: function() {
hoverListItems();
}
});
注意:使用指定的技术列表项悬停在
已应用排序/筛选
工具书类
工具提示解决方法:
我一直使用的解决方案是一个简单的非html解决方案。我只是创建一个链接到一个项目;插入它自己的地址(这样它就不会去任何地方);然后在“新建链接”选项卡下,在“说明”框中键入所需的提示
保存页面,然后尝试在新链接上滑动鼠标,瞧
希望对你有所帮助 谢谢,你说得对。看起来HTML正在重新生成,而我的代码没有被重新应用。我将研究客户端渲染主题。我们找不到用于冻结邮件头的第三方工具-您知道吗?这里有一个例子:这些工具不是特定于SharePoint的。