Jsf 2 带复选框的Primefaces树,避免在单击行的任意位置时选中/取消选中
Primefaces提供Jsf 2 带复选框的Primefaces树,避免在单击行的任意位置时选中/取消选中,jsf-2,primefaces,Jsf 2,Primefaces,Primefaces提供 这是一个很好的适合,除了“点击行上任何地方”的行为不是我要找的。我需要行上的其他按钮和内容。您可以通过jQuery覆盖树节点标签上的单击事件来禁用选择,如下所示: jQuery(".ui-treenode-label").click(function(){ return false; }); 确保每次通过ajax呈现或更新树时都运行该脚本。您需要覆盖Primefaces Javascript for treeTable。在页面上放置以下内容应禁用Primeface
这是一个很好的适合,除了“点击行上任何地方”的行为不是我要找的。我需要行上的其他按钮和内容。您可以通过jQuery覆盖树节点标签上的单击事件来禁用选择,如下所示:
jQuery(".ui-treenode-label").click(function(){
return false;
});
确保每次通过ajax呈现或更新树时都运行该脚本。您需要覆盖Primefaces Javascript for treeTable。在页面上放置以下内容应禁用Primefaces 3.5的此功能:
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.widget.TreeTable.prototype.bindSelectionEvents=function(){
var$this=这个,
rowSelector=this.jqId+'.ui树表数据tr.ui-treetable-selective-node';
$(文档).off('mouseover.treeTable mouseout.treeTable click.treeTable',行选择器)
.on('mouseover.treeTable',行选择器,null,函数(e){
var元素=$(此);
if(!element.hasClass('ui-state-highlight')){
元素addClass('ui-state-hover');
if($this.isCheckboxSelection()){
元素.find('>td:first-child>div.ui-chkbox>div.ui-chkbox-box').addClass('ui-state-hover');
}
}
})
.on('mouseout.treeTable',行选择器,null,函数(e){
var元素=$(此);
if(!element.hasClass('ui-state-highlight')){
removeClass('ui-state-hover');
if($this.isCheckboxSelection()){
元素.find('>td:first child>div.ui-chkbox>div.ui-chkbox-box').removeClass('ui-state-hover');
}
}
})
.on('click.treeTable',行选择器,null,函数(e){
//$this.onRowClick(e,$(this));嗨,谢谢你的建议。它对我不起作用。