Thanks for reporting the issue. It's caused by change in functioning of jquery show method in 3.x, it only works if the element is attached to DOM.
There are 2 alternate ways to fix it.
1) Use this patch:
$.paramquery.pqGrid.prototype.showLoading = function () {
this.loading = true
this.$loading[0].style.display = "block"
}
or
2. Change the detailModel.init method
init: function (ui) {
var rowData = ui.rowData,
detailobj = gridDetailModel(this, rowData), //get a copy of gridDetailModel
$grid = $("<div/>") //.pqGrid(detailobj) //init the detail grid.
setTimeout( _ => $grid.pqGrid(detailobj) );
return $grid
},
jsfiddle:
https://jsfiddle.net/rpx0dkef/1/