Jquery-如何显示按钮单击时隐藏的行
Jquery - How to show the rows which are hidden on button click
我有一个表,它有层次结构数据(父子层次结构)。点击该按钮,用户可以隐藏或显示该特定父级的所有相关子级。
我已经这样做了,但我正在进行ajax调用,以将子项的相关项带到父项,该项只需单击按钮即可折叠。
有几种情况。不要在意第一个我做了这个。
1) When only root node is shown:
然后我必须进行ajax调用,以使子节点与该根节点相关。
2) But when all hierarchy list is displayed:
然后用户可以通过单击父节点按钮来折叠所有子节点,但当用户展开子节点并单击同一按钮时,我不想进行ajax调用,因为我有这些子节点或行,或者我可以保持变量或其他方式。
function getChildern(primaryId, isFlat, col) {
var id = event.target.id
var allChildern = null
if(!$(".id_"+event.target.id).hasClass('minus-symbol')){
/*
Note : here I want to check whether it's collapsed or it's a new thing
if It's new make ajax request else build jquery code to show childs related to this parent which are just collapsed.
*/
$(".id_"+event.target.id).removeClass('plus-symbol').addClass('minus-symbol')
$.ajax({
url : ("/getChildsDataRows"),
type : "POST",
data : {
primaryId : primaryId
},
success : function(result) {
var substr = result.data
$.each(substr , function(i, val) {
// $(".id_"+id).show();
var suprSubstr = substr [i];
var tr = '<tr>' ;
$.each(suprSubstr , function(i, val) {
tr += '<td>' + suprSubstr[i] + '</td>';
});
tr += '</tr>'
$('table tr:nth-child(' + rowNumber + ')').after(tr);
//$(".id_"+event.target.id).removeClass('plus-symbol').addClass('minus-symbol')
});
}
});
}else{
$(".id_"+event.target.id).addClass('plus-symbol').removeClass('minus-symbol')
allChildern = $(".parent_"+id).map(function() {
$("#"+this.id).closest("tr").hide();
return this.id
}).get();
if(allChildern == ''){
}else{
removeChildern(allChildern)
}
function removeChildern(allChildern){
//alert(allChildern)
$.each(allChildern , function(i, val) {
$(".id_"+allChildern[i]).addClass('plus-symbol').removeClass('minus-symbol')
var allSubChildern = null
allSubChildern = $(".parent_"+allChildern[i]).map(function() {
$("#"+this.id).closest("tr").hide();
return this.id
}).get();
if(allSubChildern.length == 0){
}else{
removeChildern(allSubChildern)
}//$("#"+allChildern[i]).closest("tr").hide();
});
}
}
}
}
这是DOM结构
<a onclick="getChildern('1','false','UniqueId')" title="View"><i class="minus-symbol id_1 parent_0" style="height:10px;margin-left:1px;" id="1"> </i></a>
根据我们的讨论,我正在更新代码。
if($("#data-grid-table-tree tbody tr").length > 0){
// children already exist. no need for ajax call, just show the children
}else{
// children doesnt exists. make a call.
}
allChildern = $(".parent_"+id).map(function() {
$("#"+this.id).closest("tr").show();
return this.id
}).get();
if(allChildern == ''){
// make ajax call
}else{
showChildern(allChildern)
clickable=true
}
function showChildern(allChildern){
//alert(allChildern)
$.each(allChildern , function(i, val) {
$(".id_"+allChildern[i]).addClass('plus-symbol').removeClass('minus-symbol')
var allSubChildern = null
allSubChildern = $(".parent_"+allChildern[i]).map(function() {
$("#"+this.id).closest("tr").show();
return this.id
}).get();
if(allSubChildern.length == 0){
}else{
showChildern(allSubChildern)
}//$("#"+allChildern[i]).closest("tr").show();
});
}
相关文章:
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 单击按钮后如何逐个调用分区,上一个分区将隐藏
- JavaScript-在手机上不工作的情况下,在外部单击时隐藏元素
- 单击时显示,再次单击时隐藏
- JQuery在单击正文时隐藏上下文菜单
- JQuery在单击时停止显示/隐藏
- jquery单击隐藏的复选框
- jQuery单击隐藏其父元素
- 单击隐藏列表样式
- jQuery on单击隐藏
- 无法通过 JavaScript 单击隐藏按钮
- Jquery Qtip 自动隐藏以及单击隐藏
- 单击按钮模拟单击隐藏的下拉列表
- Jquery单击隐藏图像并在页面重定向后保持隐藏
- 如何使用Python Selenium单击隐藏iframe中的元素
- 单击隐藏表列
- 单击隐藏父元素
- Ng-show和ng-hide用于元素-当单击隐藏项时,再次单击时,它们都会重新出现
- 通过单击隐藏任何没有父标记的元素(当我粘贴JQuery代码并单击该元素时,它应该隐藏)
- 在表行上单击隐藏或显示其他表行