2014-03-02 5 views

답변

0

다음과 같이 트리 노드 레이블에 클릭 이벤트를 오버라이드 (override) jQuery를 통해 선택을 해제 할 수 있습니다

jQuery(".ui-treenode-label").click(function(){ 
    return false; 
}); 

그 나무가 아약스를 통해 렌더링 또는 업데이트 될 때마다 실행되도록해야합니다.

+0

안녕하세요, 귀하의 제안에 감사드립니다. 그것은 나를 위해 작동하지 않았다. –

1

treeTable의 Primeface Javascript를 재정의해야합니다. 페이지에서 다음에 배치하면 Primefaces 3.5이 기능을 해제해야합니다 : 당신이 행을 클릭 할 때이 bindEvents()는 트리 테이블의 기능을 사용하지 않도록 선택보다 우선합니다

PrimeFaces.widget.TreeTable.prototype.bindSelectionEvents = function() { 
    var $this = this, 
    rowSelector = this.jqId + ' .ui-treetable-data tr.ui-treetable-selectable-node'; 

    $(document).off('mouseover.treeTable mouseout.treeTable click.treeTable', rowSelector) 
       .on('mouseover.treeTable', rowSelector, null, function(e) { 
        var element = $(this); 
        if(!element.hasClass('ui-state-highlight')) { 
         element.addClass('ui-state-hover'); 

         if($this.isCheckboxSelection()) { 
          element.find('> td:first-child > div.ui-chkbox > div.ui-chkbox-box').addClass('ui-state-hover'); 
         } 
        } 
       }) 
       .on('mouseout.treeTable', rowSelector, null, function(e) { 
        var element = $(this); 
        if(!element.hasClass('ui-state-highlight')) { 
         element.removeClass('ui-state-hover'); 

         if($this.isCheckboxSelection()) { 
          element.find('> td:first-child > div.ui-chkbox > div.ui-chkbox-box').removeClass('ui-state-hover'); 
         } 
        } 
       }) 
       .on('click.treeTable', rowSelector, null, function(e) { 
        // $this.onRowClick(e, $(this)); <-- commenting this out disables row selection 
        e.preventDefault(); 
       }); 

    if(this.isCheckboxSelection()) { 
     var checkboxSelector = this.jqId + ' .ui-treetable-data tr.ui-treetable-selectable-node td:first-child div.ui-chkbox-box'; 
     $(document).off('click.treeTable', checkboxSelector) 
        .on('click.treeTable', checkboxSelector, null, function(e) { 
         var node = $(this).closest('tr.ui-treetable-selectable-node'); 
         $this.toggleCheckboxNode(node); 
        }); 
    } 
}; 

. 사용중인 primefaces의 특정 버전에 대한 javascript를 재정의해야합니다.

관련 문제