jQuery隐藏功能在SharePoint 2010中不起作用

时间:2014-03-26 14:09:14

标签: javascript jquery sharepoint

我们使用SharePoint 2010,JavaScript和jQuery来执行简单的功能。用户通过复选框选择适用于其情况的文档。我们将选择存储在一个数组中,然后存储在localStorage字符串对象中。然后,当他们到达另一个屏幕并单击“过滤器”按钮时,我们将字符串解析回一个数组以“隐藏”用户不感兴趣的文档。当我使用仅包含html,JavaScript的测试页时,和jQuery,存储和隐藏工作。在实际的SharePoint页面上,localStorage正常工作,jQuery选择器似乎找到要隐藏的正确表行,但是当脚本完成时,不会隐藏任何内容。最初,通过jQuery toggle()函数尝试“隐藏”,这也无法工作。

//THIS updates LOCALSTORAGE AFTER EACH CHECKBOX CLICK.
$(document).ready(function(){ 
var str1=$("[name='aspnetForm']").attr("action");
var n1=str1.indexOf("NewDocSet");
var n=str1.indexOf("ProjectManagement");
if (n!=-1 && n1!=-1){

  $(":checkbox").click(function () {
    var arrNot=[];      
    //create an array of checkboxes NOT checked and use this to hide the tr's
    $("input:checkbox").each(function () {
      arrNot.push($(this).parent().parent().parent().find('nobr').text());
    });  //each checkbox
    $("input:checkbox:checked").each(function () {
      var item  = $(this).parent().parent().parent().find('nobr').text()
      var index = $.inArray(item, arrNot);
      arrNot.splice(index, 1);
    }); //each checked           
    localStorage.setItem("key", arrNot);
  });  //checkbox .click
}  // if statement

//THIS TRIES TO GET LOCALSTORAGE FROM ABOVE AND HIDE TR ELEMENTS WHOSE A ELEMENT TEXT VALUES ARE NOT PART OF ARRAY From PAGE 1.

$("#filter").click(function () {
  var arr1 = localStorage.getItem("key").split(',');
  $(".s4-itm-cbx").each(function () {
     var attrText2 = $.trim($(this).attr("title"));
     if (attrText2 |= ""){
       var match = $.inArray(attrText2, arr1);
       if (match == -1){
         $(this).closest('tr').hide();
       }
     }
  }); //Each matched tag
}); //click function
});  //END READY

我尝试了 SPArchaeologist 的建议和其他调试技巧。现在看来,SharePoint生成的客户端脚本正在刷新之后我的显示/隐藏/更改背景颜色。通过在javascript中添加警报,我实际上可以看到列表更改,然后当我的脚本完成后,另一个客户端脚本正在恢复列表。知道什么是重置列表显示?以及如何覆盖或取消它?

0 个答案:

没有答案