与JQuery共享 - 点击列过滤器时停止工作

时间:2014-07-06 06:24:11

标签: jquery css sharepoint filter sharepoint-2013

我使用的代码为共享点列表中的项目行着色。 当我在列表视图中过滤其中一列时 - JQuery停止工作......我需要添加什么代码或以不同的方式编写代码?

<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.10.0/jquery.min.js"></script>
<script type="text/javascript">
    $(document).ready(function () {
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Approved')"); $Text.parent().css("background-color", "#01DF3A");
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Rejected')");
        $Text.parent().css("background-color", "#F90101");
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Pending')");
        $Text.parent().css("background-color", "#EAC117");
    });
</script>

1 个答案:

答案 0 :(得分:0)

&#39; $(文件).ready&#39;函数只在页面加载时运行一次。

过滤时,您正在重新创建表格中的HTML元素。因此,您的jQuery代码永远不会在这些新的HTML元素上运行。

在进行过滤和页面加载后,您需要调用函数以按状态为单元格着色。

    $(document).ready(function () {
        colorCellsByStatus();
    });

    var colorCellsByStatus = function() {
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Approved')");
        $Text.parent().css("background-color", "#01DF3A");
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Rejected')");
        $Text.parent().css("background-color", "#F90101");
        $Text = $("td.ms-cellstyle.ms-vb2:contains('Pending')");
        $Text.parent().css("background-color", "#EAC117");
    }