В вашем коде есть много проблем:
$('a[data-toggle="tab"]').on('shown.bs.tab', function(e){
$($.fn.dataTable.tables(true)).DataTable()
.columns.adjust();
});
$(selector).DataTable().clear().destroy()
. $('#PacingModal').on('shown.bs.modal', function(){});
, что приводит к ненужному несколько вызовов для других обработчиков событий. Были упомянуты другие незначительные проблемы.
См. пример ниже для исправленного кода.
function format(notes) {
var object = notes.data;
var out = '';
out += 'Answer # of Answers ';
out += 'Percent ';
for (var i in object) {
out += '' + object[i].Answer + ' ' + object[i].NumberOfAnswers + ' ' + object[i].Percent + ' '
}
out += '
';
return out;
}
$(document).ready(function() {
// AJAX emulation for demonstration only
$.mockjax({
url: '/rmsicorp/clientsite/pacingModal/surveyajax2.php',
responseTime: 200,
responseText: {
"data": [{
"Answer": 1,
"NumberOfAnswers": 2,
"Percent": 3
}, {
"Answer": 1,
"NumberOfAnswers": 2,
"Percent": 3
}, {
"Answer": 1,
"NumberOfAnswers": 2,
"Percent": 3
}]
}
});
// AJAX emulation for demonstration only
$.mockjax({
url: '/rmsicorp/clientsite/pacingModal/surveyajax.php',
responseTime: 200,
responseText: {
"data": [{
"ID": 1,
"Question": "Question"
}, {
"ID": 2,
"Question": "Question"
}, {
"ID": 3,
"Question": "Question"
}]
}
});
// AJAX emulation for demonstration only
$.mockjax({
url: '/rmsicorp/ClientSite/Reset/CategoryStatus/Detail/CatStatusDetailData.php',
responseTime: 200,
responseText: 'No data
'
});
$('#btn-show').on('click', function() {
var box = $('#PacingModal').modal();
});
$('#PacingModal').on('shown.bs.modal', function(e) {
var cat = $("#PacingModal").attr('category');
var status = $("#PacingModal").attr('status');
var taskid = $("#PacingModal").attr('taskid');
//Fill the category Details table
$.ajax({
type: "POST",
cache: false,
dataType: 'text',
url: '/rmsicorp/ClientSite/Reset/CategoryStatus/Detail/CatStatusDetailData.php',
data: {
category: cat,
statustype: status,
taskid: taskid
},
beforeSend: function() {
$('#Loading').show();
$('#SelectContainer2').empty();
},
success: function(data) {
$("#cat2").html(data);
$('#Loading').hide();
},
complete: function(data) {
var table = $("#cat2").find("#tabl").DataTable({
"scrollY": "400px",
"scrollCollapse": true,
"paging": false,
"bAutoWidth": false,
"jQueryUI": true,
"order": [
[5, "asc"]
],
"TableTools": {
"sSwfPath": "/swf/copy_csv_xls_pdf.swf",
"aButtons": [{
"sExtends": "xls",
"sButtonText": "Excel HEY!",
"sFileName": "*.xls"
}, ]
}
});
},
error: function() {
//TODO - Add auto email for error
alert("Error retriving the data from the server! Please check back soon.");
//Close modal if error
$("#PacingModal").modal('hide');
}
});
var TaskID = $('#PacingModal').attr('taskid');
//var QuestionID = table2.cell('.shown', 0).data();
var table2 = $('#car').DataTable({
destroy: true,
"ajax": {
"url": "/rmsicorp/clientsite/pacingModal/surveyajax.php",
"type": "get"
},
"scrollY": "400px",
"scrollCollapse": true,
"paging": false,
"bAutoWidth": true,
"columns": [{
"className": 'details-control',
"orderable": false,
"data": null,
"defaultContent": ''
}, {
"data": "Question"
}]
});
var detailsrows = [];
$('#car tbody').on('click', 'td.details-control', function() {
var TaskID = $('#PacingModal').attr('taskid');
var tr = $(this).closest('tr');
var row = table2.row(tr);
var cell = row.data();
var RowID = cell.ID;
var RID = $.inArray(tr.attr('id'), detailsrows);
$.ajax({
type: 'post',
url: '/rmsicorp/clientsite/pacingModal/surveyajax2.php',
data: {
TaskID: TaskID,
QuestionID: RowID
},
dataType: 'json',
success: function(result) {
if (row.child.isShown()) {
row.child.hide();
tr.removeClass('shown');
detailsrows.splice(RID, 1);
} else {
// console.log(result);
row.child(format(result)).show();
tr.addClass('shown');
if (RID === -1) {
detailsrows.push(tr.attr('id'));
}
}
}
});
});
});
$("#PacingModal").on('hidden.bs.modal', function() {
//empty html content out of div so the user does not see the last search before the new one loads when they click on a different option
$('#cat2').empty();
$('#SliderContainer2').empty();
$('#car').DataTable().clear().destroy();
});
$('#ModalTabs a[data-toggle="tab"]').on('shown.bs.tab', function(e) {
if ($(e.target).attr('href') === '#PacingModalSurvey') {
$('#car').DataTable().columns.adjust();
}
});
});
См. jQuery DataTables - Проблемы с шириной столбца с вкладками Bootstrap для решения наиболее распространенных проблемы с jQuery DataTables и вкладками Bootstrap.
Можно сделать следующее:
ssh -t xxx.xxx.xxx.xxx "cd /directory_wanted ; bash"
Таким образом, Вы разберетесь в оболочке на directory_wanted.
<час>Объяснение
-t
выделение псевдотерминала Силы. Это может использоваться для выполнения произвольных основанных на экране программ на удаленной машине, которая может быть очень полезной, например, при реализации сервисов меню.опции Multiple
-t
вызывают tty выделение, даже если ssh не имеет никакого локального tty.
-t
тогда, никакая подсказка не появится. ; bash
тогда, соединение будет закрыто и возвратит управление Вашей локальной машине Сам SSH обеспечивает средство сообщения, он ничего не знает о каталогах. Так как можно определить, какую удаленную команду выполниться (это - по умолчанию - оболочка), я запустил бы там.
Вы могли добавить
cd /some/directory/somewhere/named/Foo
к Вашему .bashrc
файл (или .profile
или независимо от того, что Вы называете его) в другом хосте. Тот путь, независимо от того, что Вы делаете или где Вы ssh
от, каждый раз, когда Вы входите в систему, что сервер, он будет cd
к надлежащему каталогу для Вас и всего, которое необходимо сделать, использовать ssh
как нормальный.
Из проклятия, решение rogeriopvl работает также, но это - немного более подробного бита, и необходимо не забыть делать это каждый раз (если Вы не делаете псевдоним), таким образом, это кажется немного меньшим количеством "забавы".