2013-04-04 139 views
0

我在尝试对程序列表进行排序,首先列出“已检查”或包含的程序。但是,我在引导时遇到困难,并在页面加载时调用方法。这是一个.jsp文件并利用主干和引导。BootStrap/JQuery在页面加载或渲染时调用方法

这是我现有的功能,它工作正常,但只有当点击排序按钮。

onSortCheckedClick:function(e){ e.preventDefault(); var anchor = $(e.currentTarget);

  var li = anchor.parent("li.sortChecked"); 
      if (li.hasClass("active")) { 
       return; 
      } 

      var sortDirectionOrder = anchor.attr("data-direction"); 
      var sortDirectionColumn = anchor.attr("data-sortByCheck"); 
      var attributesNames = sortDirectionColumn.split('.'); 

      var sortedPrograms = this.programs.sortBy(function(program) { 
       var answers = program.toJSON(); 

       var unChecked = new Array(); 

       var selectAnswers, unselectAnswers; 
       if(answers.selected === true){ 
        selectAnswers = answers; 
       }else if(answers.selected === false){ 
        unselectAnswers = answers; 
       } 

       return unselectAnswers; 
      }); 

      if (sortDirectionOrder === 'asc') { 
       sortedPrograms.reverse(); 
      } 

      this.$("thead li.sortChecked").removeClass("active"); 
      li.addClass("active"); 
      this.programs.reset(sortedPrograms); 
     }, 

这里是注册事件侦听器。当程序列表呈现时,调用上述方法的最佳方法是什么?

谢谢!

+0

“程序列表”是骨干视图吗? – 2013-04-04 11:39:57

回答

0

一旦你的页面被渲染,你可以调用这个函数。

$(document).ready(function(){ 
//Call your function here 
//It is assumed your the list of programs are rendered on page load 
//-- Otherwise -- 
// Call renderProgram() and then call or add event listeners to onSortCheckedClick() 
}); 

您可以使用一个jQuery Deferred对象来处理renderProgram后onSortCheckedClick()已完成的呼叫。

在主html文件上调用ready函数(或将其包含在主html文件中)。